2 回答
TA贡献1856条经验 获得超17个赞
最里面的new Date()
总是在六月创建一个 Date 实例。当您将月份日期设置为 30 时,您将日期强制为 6 月 30 日,而不是 5 月 30 日。
调用.setDate()
可以更改月份,但仅当月份中的某天没有意义时,或者更小(零或负)或更大(如 33)。由于 30 确实是六月中的真实日子,因此月份不会改变。
TA贡献1906条经验 获得超10个赞
在这里,我将您的代码修改为您想要的反应:
a = [];
a[0] = new Date();
console.log("1 Element Added: "+a.length + " - " + a.toString());
//"1 Element Added: 1 - Sun Jun 02 2019 12:13:35 GMT-0400 (Eastern Daylight Time)"
a.unshift(new Date(a[0]));
a[0].setDate(a[0].getDate()-1);
console.log("First Unshift: "+a.length + " - " + a.toString());
//"First Unshift: 2 - Sat Jun 01 2019 12:13:35 GMT-0400 (Eastern Daylight Time),Sun Jun 02 2019 12:13:35 GMT-0400 (Eastern Daylight Time)"
a.unshift(new Date(a[0]));
a[0].setDate(a[0].getDate()-1);
console.log("Second Unshift: "+a.length + " - " + a.toString());
//"Second Unshift: 3 - Fri May 31 2019 12:13:35 GMT-0400 (Eastern Daylight Time),Sat Jun 01 2019 12:13:35 GMT-0400 (Eastern Daylight Time),Sun Jun 02 2019 12:13:35 GMT-0400 (Eastern Daylight Time)"
a.unshift(new Date(a[0]));
a[0].setDate(a[0].getDate()-1);
console.log("Third Unshift: "+a.length + " - " + a.toString());
添加回答
举报