使用时刻和时刻时区来正确实现差异

时间:2016-07-16 09:27:31

标签: javascript momentjs

尝试使用时刻的差异函数来计算ms时间差b / w,该时刻将始终具有恒定时区和另一个时区无关紧要时刻。我使用时刻时区来帮助解决这个问题。

这是我的示例代码:

const parisTime   = moment({hour:18, minutes:0}).tz('Europe/Paris');
const currentTime = moment(); //right now
const difference  = moment.duration(parisTime.diff(currentTime))

当我执行此操作时,diff将currentTime视为与欧洲/巴黎相同的时区,其中b / c currentTime可能来自世界上任何地方。

任何想法如何解决这个问题? 非常感谢您的帮助 - 正确答案将被标记为。

谢谢!

1 个答案:

答案 0 :(得分:3)

我想你想计算今天巴黎时间和现在18:00之间的差异。那将是

moment.tz('18:00', 'HH:mm', 'Europe/Paris').diff(moment());

基本上,你需要解析18:00作为巴黎时间。现在正在发生的事情是你将它解析为当地时间,然后将其转换为巴黎时间。

请注意,因为您没有指定日期,所以假设这一天是“今天”,这意味着此代码可能会产生正值和负值。

有关时刻构造函数如何工作的更多信息,请参阅this blog post