Javascript 两个时区格式日期之间的moment.js差异
我必须计算设定时间和当前服务器时间之间的时间差 我正在使用momentjs和moment时区库 以下是我所拥有的:Javascript 两个时区格式日期之间的moment.js差异,javascript,momentjs,Javascript,Momentjs,我必须计算设定时间和当前服务器时间之间的时间差 我正在使用momentjs和moment时区库 以下是我所拥有的: 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 tim
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库进行此类计算的最佳方式是什么?moment.js确实很棒 看来我可以简单地做到:
moment.duration(day14.diff(serverTime)).asHours();
或者分别获取分钟和小时的数字
moment.duration(day14.diff(serverTime)).minutes();
moment.duration(day14.diff(serverTime)).hours();
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);
请注意,这不是“服务器时间”,除非您正在服务器上运行此代码。只要它在客户端上运行,它仍然基于客户端的时钟-即使您使用不同的时区。谢谢。我想我应该更好地命名这个变量。我正在使用日期之间的差异方法,这两个日期都转换为我指定的时区,因此我得到了期望的结果。但是,我想知道使用utc模拟服务器时间是否是一个好主意。如果您只是比较时间,您甚至不需要指定任何特定的时区,因为它在幕后使用utc。我只在第一行包含TZ,因为您稍后会显示它。如果你只关心DIFF,你可以只使用<代码> Simulink(<)>代码> .WRT“服务器时间”,真正做到这一点的唯一方法是从服务器获取一个时间戳,当然,你必须考虑在传输那个时间戳方面有延迟。您似乎将“使用服务器的时区”与“使用服务器的时钟”混为一谈。请记住,客户可以根据自己的需要更改时钟。不能保证它会同步。