2

谁能向我解释为什么“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>
4

2 回答 2

2

setDate()并且getDate()函数仅指月份中的某一天。当您从d对象中减去 10 天时,它也会自动设置月份,例如July。但是,当您设置defaultDate对象的日期时,您只需设置天数(因此月份和星期几不会更改)。

于 2013-08-09T13:01:23.907 回答
0

setDate()期望1-31范围内的数字,所以当你通过它时-1(今天是第 9 号,所以9-10 = -1)你不能指望它做任何有意义的事情。如果我告诉你将日历设置为 8 月 -1 日,你会怎么做?

于 2013-08-09T12:48:28.480 回答