一尘不染

Date.getMonth()方法是否有错误?

javascript

我在chrome和firefox中测试过,这就是问题所在。Date对象的getMonth()方法有错误?当我在某天设置位置日期时,例如"2013-1-31"

然后,js代码为:

var d = new Date();
d.setMonth(8);
d.getMonth();

结果为“ 9”,为什么?

我发现当月有31天时,请运行该setMonth方法,该getMonth方法将返回错误的值

为什么?


阅读 638

收藏
2020-05-01

共1个答案

一尘不染

让我们分解一下:

var d = new Date(); // date is now 2013-01-31
d.setMonth(1);      // date is now 2013-02-31, which is 3 days past 2013-02-28
x = d.getMonth();   // what to do, what to do, 3 days past 2013-02-28 is in March
                    // so, expect x to be March, which is 2

只有当天的值d大于传递给的当月的最大天数时,这才是问题setMonth()。否则,它会按您期望的那样工作。

2020-05-01