创建新日期对象时的不一致

我正在JavaScript中创建新的日期对象,并根据我是否使用dateString参数与年/月/日整数参数看到一些不一致。

这是一个例子:

var dt1 = new Date(1979,3,5);
var dt2 = new Date('1979-04-05');

js以身作则

dt1分配值:Thu Apr 05 1979 00:00:00 GMT-0500(中央夏令时间)

dt2分配值:Wed Apr 04 1979 19:00:00 GMT-0500(中央夏令时间)

有人可以解释这种行为吗? 第二个例子(dt2)恰好是Chrome从输入[type = date]元素返回选定日期的格式,这就是为什么我要弄清楚这一点。


它看起来像'1979-04-05'形式被解释为UTC日期(然后在显示时将UTC日期转换为本地时间)。 new Date(1979,3,5);形式new Date(1979,3,5); 被解释为当地时间。 您可以使用Date.UTC强制3参数表单的UTC时间(请参阅文档)。

Date解析(特别是时区处理)在浏览器中通常是不统一的,最好不要依赖它 - 尽可能使用UTC,或使用单独的库,如Date.js或moment.js。

链接地址: http://www.djcxy.com/p/18639.html

上一篇: Inconsistencies when creating new date objects

下一篇: Javascript date +5 won't increment the month