为什么使用date对象的日期2014年10月31日和2014年11月1日在Javascript中具有相同的值?
为什么下面代码中的两个日期具有相同的为什么使用date对象的日期2014年10月31日和2014年11月1日在Javascript中具有相同的值?,javascript,date,Javascript,Date,为什么下面代码中的两个日期具有相同的valueOf()和getTime() var endDt=新日期(2014年10月31日); var endDt2=新日期(2014年11月1日); 警报(“getTime()\nendDt:+endDt.getTime()+”\nendDt2:+endDt2.getTime()); 警报(“valueOf()\nendDt:+endDt.valueOf()+”\nendDt2:+endDt2.valueOf()); 您创建的日期不正确。在JavaScr
valueOf()
和getTime()
var endDt=新日期(2014年10月31日);
var endDt2=新日期(2014年11月1日);
警报(“getTime()\nendDt:+endDt.getTime()+”\nendDt2:+endDt2.getTime());
警报(“valueOf()\nendDt:+endDt.valueOf()+”\nendDt2:+endDt2.valueOf());
您创建的日期不正确。在JavaScript中,月份是基于0的,因此新日期(2014,10,31)代码>为(理论上)11月31日,新日期(2014年11月1日)
为12月1日
当然11月31日并不存在,所以12月1日是正确的
从中的黄色大框:
注意:如果将日期
称为具有多个参数的构造函数,如果值大于其逻辑范围(例如,13
作为月值提供,或70
作为分钟值提供),则将调整相邻值。例如,新日期(2013,13,1)
相当于新日期(2014,1,1)
,两者都为2014-02-01
创建了一个日期(请注意,月份以0为基础)
javascript中的日期确实有点奇怪。看看这个:Javascript日期月份是以0为基础的,所以11月应该是10个。怎么了,伙计!非常感谢,我明白了。