Date对象初始化我遇到了一个奇怪的问题.并想知道是否有人可以解释为什么..
var exp1 = new Date('2014-10-17');
var exp2 = new Date(2014,9,17);
var exp3 = new Date('17 Oct 2014');
console.log(exp1);
console.log(exp2);
console.log(exp3);
Run Code Online (Sandbox Code Playgroud)
结果:
Thu Oct 16 2014 18:00:00 GMT-0600 (MDT) // 16th? Fri Oct 17 2014 00:00:00 GMT-0700 (MST) // Why GMT -7 Fri Oct 17 2014 00:00:00 GMT-0600 (MDT) // The only one that works as expected
为什么这三个Date对象如此不同?
由于未提供时区偏移,因此第一个日期被视为 GMT。注销后,它会显示您当地时区的时间。添加偏移量(exp4如下),我得到了预期的日期。
var exp1 = new Date('2014-10-17');
var exp2 = new Date(2014,9,17);
var exp3 = new Date('17 Oct 2014');
var exp4 = new Date('2014-10-17z-0500');
Run Code Online (Sandbox Code Playgroud)
结果:
Thu Oct 16 2014 19:00:00 GMT-0500 (Central Daylight Time)
Fri Oct 17 2014 00:00:00 GMT-0500 (Central Daylight Time)
Fri Oct 17 2014 00:00:00 GMT-0500 (Central Daylight Time)
Fri Oct 17 2014 00:00:00 GMT-0500 (Central Daylight Time)
Run Code Online (Sandbox Code Playgroud)
我不确定exp2你的情况,但怀疑这与夏令时有关,并且你居住在不遵守夏令时的地区(亚利桑那州?)。
编辑:这似乎是特定于浏览器的。上面的结果是在 Chrome 中生成的,而在 IE 11 中exp4是无效日期。对于 IE 11,我必须使用以下格式:
var exp4 = new Date('2014-10-17T00:00-05:00');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |