任何人都可以向我解释为什么在“defaultDate.setDate(d.getDate());”中错误地设置了月份。“在下面的代码?我知道JS从0索引开始运行数月,但是我会假设setDate()会处理任何差异。
<script>
var defaultDate = new Date();
window.alert(defaultDate);
function testfunction(){
var d=new Date();
window.alert(d);
d.setDate(d.getDate()-10);
window.alert(d);
defaultDate.setDate(d.getDate());
window.alert(defaultDate);
}
testfunction();
</script>
答案 0 :(得分:1)
setDate()
和getDate()
函数仅指该月的某一天。当您从d
对象中减去10天时,它会自动设置月份,因此 7月。但是,当您设置defaultDate
对象的日期时,您只需设置天数(因此月份和星期几未更改)。
答案 1 :(得分:0)
setDate()
预计1-31
范围内的数字,所以当你传递-1
(今天是第9,所以9-10 = -1
)时,你不能指望它做任何有意义的事情。如果我告诉你将日历设置为8月1日,你会怎么做?