2016-12-16 105 views
1

我想使用moment.js库计算两个不同时区之间的时间差(以小时为单位)。不同时区的瞬间js差异

我尝试使用库提供diff功能,但它没有提供正确的答案,我想:

moment('2016-12-18 6:00:00', 'YYYY-MM-DD HH:mm:ss') 
    .diff(moment('2016-12-18 6:00:00', 'YYYY-MM-DD HH:mm:ss').utcOffset('+09:30'), 'hours') 

我在UTC+5:30moment(string, string)构造函数返回我的当前时区的时间。我期待的答案是4而不是0。时光库提供的其他功能是否有助于区分时区之间的差异?

+0

您可能需要使用[moment-timezone](http://momentjs.com/timezone/)。有关更多详细信息,请参阅['utcOffset'](http://momentjs.com/docs/#/manipulating/utc-offset/)文档。 – VincenzoC

回答

2

只要你只是使用固定的时区偏移,如果你做一个调整你上面的代码将工作:

.utcOffset('+09:30', true) 

第二个参数告诉函数已保留的日期和时间值的时刻有偏移量设置时。默认(false)将从转移日期和时间从其当前偏移量(您的本地时间)到提供的偏移量。

如果您没有使用固定偏移量,那么您确实需要使用时区时间附加组件。