在momentjs中处理DST的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在momentjs中处理DST的问题相关的知识,希望对你有一定的参考价值。

我有一个关于在momentjs中处理DST的问题。

假设我目前处于GMT + 1时区并观察标准(冬季)时间,因此我的UTC偏移为+01:00。如果我执行:moment('2018-02-26T10:12:00+01:00').format('LLL')我将得到"26 February 2018 10:12"正如我所料。

但是,如果我执行moment('2018-04-26T10:12:00+01:00').format('LLL')(所以日期在DST期间内)我会得到"26 April 2018 11:12"所以看起来像是没有考虑到现在和那个日期之间发生的DST切换。

这实际上是预期的行为吗?

答案

确实是预期的行为和时刻正常运作。

您已在+01:00的输入时间中指定了偏移量,但当时在当地时区生效的偏移实际上是+02:00(假设大多数欧洲地区都在CET / CEST中)。因此,您描述的瞬间是一个小时,因此您的结果是一小时。

如果省略输入的偏移量,您将看到Moment的行为符合您的预期。

以上是关于在momentjs中处理DST的问题的主要内容,如果未能解决你的问题,请参考以下文章

用 momentJS 正确处理 DST 偏移

在 DST 过渡期间增加几个小时

momentJS 日期字符串添加 5 天

如何使用 fullcalendar 处理 DST 显示混乱

ConvertTimeFromUtc() 和 ToUniversalTime() 是不是处理 DST?

如何在 EJS 视图中使用节点模块(如 MomentJS)?