javascript - 将月份添加到日期会将时区从 GMT 更改为 BST
问题描述
在 JavaScript 中将时间单位添加到日期时,遇到了一个奇怪的时区变化问题。如何防止这种行为?
目前我所在的地方不是英国夏令时......仍然是格林尼治标准时间。
更新:这个错误在英国以外显然无法重现。
解决方案
似乎无论您的本地时区是什么,它都会观察 GMT 和 BST 之间的夏令时切换。英国夏令时从 3 月的最后一个星期日开始,因此当您将一个月添加到 3 月日期(即您所在时区的 GMT 时间)时,您将获得您所在时区的 BST 中的 4 月日期。
为了说明我的意思,尝试为 2019 年 2 月 1 日创建一个 JavaScript 日期对象,类似于您问题中的示例(但将 March 替换为 February),然后在日期中添加一个月,您应该会看到输出日期仍然显示在您的本地计算机上使用 GMT 时间,因为 BST 直到 3 月底才开始。
推荐阅读
- html - 如何在不更改其他元素大小的情况下将隐藏元素添加到 flex 父元素?
- bash - sed 仅替换第一次出现,然后仅替换第二次出现,然后仅替换第三次
- haskell - Haskell 工具栈和可执行文件大小
- php - 如果复选框选中已更改,则更改 td 上的类
- amazon-web-services - AWS Workspaces CLI:“开始 - 工作区”的语法
- python - 如何从 Excel 工作表创建嵌套字典并将它们合并在一起
- html - 如何更改自动建议反应组件中 ul li 元素的背景颜色?
- nestjs - Nestjs 服务级缓存
- spring-integration - http-inbound 网关是否可以做拦截器的 preHandle 和 postHandle 之类的事情?
- python - np.where 用于查找差异,nans 与非 nan 值混合