“在“能源危机”期间,国会制定了较早的夏令时开始日期。1974年,夏令时开始于1月6日,1975年开始于2月23日。在那两年之后,开始日期又恢复为夏令时的最后一个星期日。四月。”
(通过http://aa.usno.navy.mil/faq/docs/daylight_time.php)
这些日期的Javascript日期对象中似乎有一个错误。如果您将127627200000毫秒转换为日期,则应为1974年1月17日星期四EDT1974。这在http://www.fileformat.info/tip/java/date2millis.htm上正确,但在上正确
http://www.esqsoft.com/javascript_examples/date-to-epoch.htm,表示将转换为1974年1月16日星期三GMT-0500(东部标准时间)。如果在javascript中创建新的Date(127627200000)对象,它将提供后者的日期转换。这在所有主要的浏览器中都会发生。
我无法想象这是任何人第一次遇到这个问题,但是通过在线搜索我找不到其他任何此问题的情况。有谁知道此修复程序是否存在,或者比手动检查Javascript转换错误的日期更容易的修复程序?还有其他日期这有问题吗?
最佳答案
与以往一样,最好检查规格:)
在这种情况下,我对ECMA-262的15.9.1.9部分中的内容感到非常震惊:
换句话说,一致的ECMAScript实现不允许历史上准确。
现在,不管是否所有实现都遵循此规则,我不确定...但是它确实建议您,如果您想获得历史上准确的时区,则需要某种单独的库...其中“历史上准确的”不是当然,必须要追溯到1974年:美国在2007年更改了夏令时时间表,而其他国家/地区的更改时间则比最近(且警告更少)。
1首次出现15.9.1.9。由于某种原因,它发生两次-一次用于“夏令时调整”,一次发生在“本地时间”。哇。