【问题标题】:Use moment and moment timezone to properly implement diff使用时刻和时刻时区正确实现差异
【发布时间】:2016-07-16 09:27:30
【问题描述】:

尝试使用 moment 的 diff 函数来计算 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))

当我执行此操作时,差异将 currentTime 视为与欧洲/巴黎相同的时区,这不起作用 b/c currentTime 可能来自世界任何地方。

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

谢谢!

【问题讨论】:

    标签: javascript momentjs


    【解决方案1】:

    我认为您想计算今天巴黎时间 18:00 与现在之间的差异。那将是

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 2019-06-08
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 2019-05-06
      • 2014-05-11
      • 2022-11-21
      • 2018-01-17
      相关资源
      最近更新 更多