在执行getTime()时,Javascript new Date()给了我相同的结果

Javascript new Date() give me the same result when executing getTime()

本文关键字:结果 new getTime 执行 Javascript Date      更新时间:2023-09-26

为了比较2日期,我正在将字符串转换为JavaScriptDate对象。

这是我的代码示例:

 var date1 = new Date(dateArrray1[2], dateArrray1[1], dateArrray1[0], 0, 0, 0, 0);
 var date2 = new Date(dateArrray2[2], dateArrray2[1], dateArrray2[0], 0, 0, 0, 0);

我的问题是,当我对这两个日期对象进行验证时,我在某个日期的getTime函数上得到了相同的结果。

var date1 = new Date(2012, 01, 30, 12, 0, 0, 0).getTime()
var date2 = new Date(2012, 02, 01, 12, 0, 0, 0).getTime()

通常,date1date2的值应该不同。但是惊喜!这两个对象的值是相同的(实际上值是1330621200000)。

有人和我有同样的问题吗?

Javascript日期使用基于0的月份
如果您传递了一个无效的日期,例如2月30日,它会计算出该日期的实际值。
因此,闰年的2月30日和3月1日是相同的。

月份字段的范围为0-11,而不是1-12

所以在这种情况下,你要求2月30日和3月1日。

今年2月有29天,所以2月30日(数学上)与3月1日相同。