编辑:这不是马丁指出的错误.我只是穿越夏令时,因此1小时差异.
我想计算"2010年3月29日"和"2010年3月9日"之间的天数差异,所以我有以下代码:
((new Date(2010, 2, 29)).getTime() - (new Date(2010, 2, 8)).getTime()) / 86400000
Run Code Online (Sandbox Code Playgroud)
86400000是一天中的毫秒数,并且以毫秒为单位返回日期之间的差异,因此这应该有效.只是它并不完全.我明白了
20.958333333333332
Run Code Online (Sandbox Code Playgroud)
这两个日期之间的差异是错误的.它应该是1814400000(21天86400000),但实际上是1810800000.
此外,如果我改变差异:
((new Date(2010, 2, 28)).getTime() - (new Date(2010, 2, 7)).getTime()) / 86400000
Run Code Online (Sandbox Code Playgroud)
相同的差异,只有一天回来,我得到正常的结果.
只有当我们试图得到(xy)x在2010年3月29日之后且y在2010年3月29日之前时,才会发生这种情况.
我在Mac上的Safari 4和Firefox 3.6以及Windows 7上的IE 8中得到了这个.没有尝试过其他浏览器.
我做错了什么或这是一个已知的错误?
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |