尝试使用时刻的 diff 函数来计算一个时刻的时间差,该时刻始终具有恒定的时区,而另一个时刻则具有不同的时区。我正在使用时刻时区来帮助解决这个问题。
这是我的示例代码:
const parisTime = moment({hour:18, minutes:0}).tz('Europe/Paris');
const currentTime = moment(); //right now
const difference = moment.duration(parisTime.diff(currentTime))
当我执行此操作时, diff 将当前时间视为与欧洲/巴黎相同的时区,这是行不通的,因为当前时间可能来自世界任何地方。
有什么想法可以解决这个问题吗? 非常感谢您的帮助 - 正确答案将被标记为如此。
谢谢!
最佳答案
我认为您想要计算巴黎时间今天 18:00 与现在之间的差异。那将是
moment.tz('18:00', 'HH:mm', 'Europe/Paris').diff(moment());
基本上,您需要将 18:00 解析为巴黎时间。现在发生的情况是,您将其解析为本地时间,然后将其转换为巴黎时间。
请注意,由于您没有指定日期,因此该天被假定为“今天”,这意味着此代码可能会产生正值和负值。
参见this blog post有关 moment 的构造函数如何工作的更多信息。
关于javascript - 使用 moment 和 moment 时区正确实现 diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38409678/