【问题标题】:Adding a month to a date changes the timezone from GMT to BST [duplicate]在日期上添加一个月会将时区从 GMT 更改为 BST [重复]
【发布时间】:2019-03-29 15:07:53
【问题描述】:

在 JavaScript 中将时间单位添加到日期时遇到了一个奇怪的时区变化问题。如何防止这种行为?

我现在所在的地方不是英国夏令时......仍然是格林尼治标准时间。

更新:此错误显然无法在英国以外重现。

【问题讨论】:

  • 这不是错误,而是一项功能。 ;)

标签: javascript datetime timezone


【解决方案1】:

似乎无论您的本地时区是什么,它都会观察 GMT 和 BST 之间的夏令时切换。 British Summer Time 开始于 3 月的最后一个星期日,因此当您在 3 月日期(即您所在时区的 GMT 时间)上添加一个月时,您会得到您所在时区的 BST 日期的 4 月日期。

为了说明我的意思,请尝试为 2019 年 2 月 1 日创建一个 JavaScript 日期对象,类似于您问题中的示例(但将 March 替换为 February),然后在日期中添加一个月,您应该会看到输出日期在您的本地计算机上仍以 GMT 显示,因为 BST 直到 3 月底才开始。

【讨论】:

    猜你喜欢
    • 2012-12-19
    • 2013-02-21
    • 1970-01-01
    • 2020-02-17
    • 2013-07-14
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    相关资源
    最近更新 更多