首页 > 解决方案 > 将月份添加到日期会将时区从 GMT 更改为 BST

问题描述

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

在此处输入图像描述 目前我所在的地方不是英国夏令时......仍然是格林尼治标准时间。

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

标签: javascriptdatetimetimezone

解决方案


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

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


推荐阅读