"在"能源危机"时期,国会通过了白昼时间的早期开始日期.1974年,白昼时间从1月6日开始,1975年开始于2月23日.在这两年后,开始日期又回到了上周日. 4月."
(通过http://aa.usno.navy.mil/faq/docs/daylight_time.php)
这些日期的Javascript日期对象中似乎存在错误.如果你将127627200000毫秒转换为日期,它应该是美国东部时间1974年1月17日00:00:00.这在http://www.fileformat.info/tip/java/date2millis.htm上是正确的,但在 http: //www.esqsoft.com/javascript_examples/date-to-epoch.htm,表示它将转换为1974年1月16日星期三19:00 23:00:00 GMT-0500(东部标准时间).如果您在javascript中创建一个新的日期(127627200000)对象,它将提供后一个日期转换.这种情况发生在所有主流浏览器
我无法想象这是第一次这对任何人来说都是一个问题,但我在网上搜索时找不到任何其他问题.有没有人知道是否有一个现有的修复程序或更容易修复,而不是手动检查日期Javascript的转换错误?还有其他日期这是一个问题吗?
Jon*_*eet 13
一如既往,最好检查规格:)
在这种情况下,我非常震惊地看到ECMA-262的第15.9.1.9节:
ECMAScript的实现不应该试图确定准确的时间是否受夏令时影响,而是在当时使用当前的夏令时算法时,夏令时是否有效.这避免了复杂性,例如考虑到本地区全年观察夏令时的年份.
换句话说,不允许符合条件的ECMAScript实现在历史上是准确的.
现在是否所有实现都遵循这个,我不确定......但它确实建议你需要某种独立的库,如果你想获得历史上准确的时区......"历史上准确"不是必须要远远超过1974年,当然:美国在2007年改变了其DST时间表,而其他国家最近也这样做了(并且警告较少).
1第一次出现15.9.1.9.出于某种原因,它会发生两次 - 一次用于"夏令时调整",一次用于"本地时间".哇.
| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |