【发布时间】:2019-03-29 15:07:53
【问题描述】:
在 JavaScript 中将时间单位添加到日期时遇到了一个奇怪的时区变化问题。如何防止这种行为?
我现在所在的地方不是英国夏令时......仍然是格林尼治标准时间。
更新:此错误显然无法在英国以外重现。
【问题讨论】:
-
这不是错误,而是一项功能。 ;)
标签: javascript datetime timezone
在 JavaScript 中将时间单位添加到日期时遇到了一个奇怪的时区变化问题。如何防止这种行为?
我现在所在的地方不是英国夏令时......仍然是格林尼治标准时间。
更新:此错误显然无法在英国以外重现。
【问题讨论】:
标签: javascript datetime timezone
似乎无论您的本地时区是什么,它都会观察 GMT 和 BST 之间的夏令时切换。 British Summer Time 开始于 3 月的最后一个星期日,因此当您在 3 月日期(即您所在时区的 GMT 时间)上添加一个月时,您会得到您所在时区的 BST 日期的 4 月日期。
为了说明我的意思,请尝试为 2019 年 2 月 1 日创建一个 JavaScript 日期对象,类似于您问题中的示例(但将 March 替换为 February),然后在日期中添加一个月,您应该会看到输出日期在您的本地计算机上仍以 GMT 显示,因为 BST 直到 3 月底才开始。
【讨论】: