在执行日历并绘制前一个月的日子时,我尝试在循环中执行此操作,其中我使用 setDate() 方法,该方法有一些负数作为输入。我所看到的:
let testt = new Date(); //today 1 Feb 2019
testt.setDate(0);
console.log( testt.getDate());
testt.setDate(1);
console.log( 'after reset='+testt.getDate());
testt.setDate(-1);
console.log( testt.getDate());
testt.setDate(1);
console.log( 'after reset='+testt.getDate());
testt.setDate(-2);
console.log( testt.getDate());
testt.setDate(1);
console.log( 'after reset='+testt.getDate());
testt.setDate(-3);
console.log( testt.getDate());
testt.setDate(1);
console.log( 'after reset='+testt.getDate());
testt.setDate(-4);
console.log( testt.getDate());
testt.setDate(1);
console.log( 'after reset='+testt.getDate());
我在控制台中看到的内容:
31
"after reset=1"
30
"after reset=1"
28
"after reset=1"
28
"after reset=1"
26
"after reset=1"
我预计日期会同步更改。在控制台中我将看到 31,30,29,28,27 日期 如何解决这个问题?
最佳答案
您没有重置日期。输出完整的日期对象,您会发现每次都在更改月份。这是因为 setDate() 是相对于对象中的当前月份的。您必须完全重置预期输出的日期。
关于javascript - Date() 对象的 setDate() 方法中的负数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54473905/