【发布时间】:2016-06-23 02:05:27
【问题描述】:
最小的例子:
var test = new Date();
test.setMonth(3);
test.setDate(3);
test.setHours(2);
test.getUTCHours()`
在 Firefox 上我得到“7”,Chrome 给我“8”(我认为正确答案)。
DST 即将到来,我的任务是解决我们的 javascript 更改带来的各种问题。我不确定如何处理这个问题。时间向前移动了 1 小时,所以我们将从 1:59:59 到 3:00:00 完全跳过凌晨 2 点。问题是我们有多个没有这个概念的日期时间选择器(没关系),所以你仍然可以选择凌晨 2 点的时间。我希望当我从凌晨 2 点构建一个日期时,它会被推到凌晨 3 点,所以 2:05 变为 3:05。 Chrome 处理得很好,但 Firefox 似乎将其推回到 1:05。 UTC 相差一小时,但是当您使用时区进行格式化时,它将显示为 1:05。
我该如何解决这个问题?我认为答案只是“momentjs”,但我想了解为什么会有所不同。
【问题讨论】:
-
13号不是夏令时吗?
-
上述结果完全取决于主机系统时区设置。对于世界上绝大多数人来说,4 月 3 日 02:00 的意义不大。
-
JavaScript 时间基于 Browser 时间,通常基于 Client 的 OS 时间。
-
抱歉,我正在打电话,所以稍后会详细回答,但请查看stackoverflow.com/tags/dst/info 和stackoverflow.com/questions/28989484/… 和stackoverflow.com/a/29453582/634824
-
@PHPglue 美国是 13 号,但我正在测试墨西哥(美国/墨西哥城)(我应该指出这一点)。如果您的计算机设置在美国时区,则在 13 日可以观察到相同的行为。
标签: javascript date timezone dst