两个时区格式化日期之间的moment.js差异

时间:2016-05-13 01:06:15

标签: javascript momentjs

我必须计算设定时间和当前服务器时间之间的时差。

我正在使用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库进行此类计算的最佳方法是什么?

2 个答案:

答案 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();