我发现在JavaScript的Date
构造函数中存在奇怪的行为。它针对不同的毫秒毫秒值在不同时区下创建时间。我在纽约,所以我期望他们都出来作为EST
,但一些出来作为EDT
而不是。新日期(unix)返回不一致的时区
// EST as I expect:
new Date(1446613200000)
Wed Nov 04 2015 00:00:00 GMT-0500 (EST)
new Date(1446440400000)
Mon Nov 02 2015 00:00:00 GMT-0500 (EST)
// EDT for some reason:
new Date(1446354000000)
Sun Nov 01 2015 01:00:00 GMT-0400 (EDT)
new Date(1446181200000)
Fri Oct 30 2015 01:00:00 GMT-0400 (EDT)
我可以在Chrome和nodejs中重现此操作,但不能在Firefox中重现此操作。我想它与V8有关?任何人对此有解释?
这是一个巨大的耻辱,JS不提供任何理智的实用工具来更改对象的时区,因为它会影响getHours
的输出。