我必须计算设定时间和当前服务器时间之间的时差。
我正在使用momentjs和当前时区库。
以下是我所拥有的:
var serverTime = moment.tz(new Date(), "Europe/Berlin").format();
var bar = moment.tz("2016-05-14 00:00:00", "Europe/Berlin").format();
var baz = bar.diff(serverTime);
console.log('server time is: ' + serverTime);
console.log('time diff is: ' + baz);
这给了我一个错误:
TypeError: bar.diff is not a function
是否可以在两个时区格式的日期之间进行区分?如果没有,使用momentjs库进行此类计算的最佳方法是什么?
答案 0 :(得分:2)
format
生成一个字符串,因此在您需要字符串之前不要使用它。
var now = moment.tz("Europe/Berlin");
var bar = moment.tz("2016-05-14 00:00:00", "Europe/Berlin");
var baz = bar.diff(now);
console.log('current time is: ' + now.format());
console.log('time diff is: ' + baz);
请注意,它不是"服务器时间"除非您在服务器上运行此代码。只要它在客户端上运行,它仍然基于客户端的时钟 - 即使您使用不同的时区。
答案 1 :(得分:0)
moment.js真是太棒了!
我似乎可以这样做:
Баркод
或分别获取分钟和小时的数字
moment.duration(day14.diff(serverTime)).asHours();