Javascript setDate()意外行为错误的月份

时间:2013-08-09 12:41:12

标签: javascript date

任何人都可以向我解释为什么在“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>

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

相关问题