我在chrome和firefox中测试过,这就是问题所在。Date对象的getMonth()方法有错误?当我在某天设置位置日期时,例如"2013-1-31"
getMonth()
"2013-1-31"
然后,js代码为:
var d = new Date(); d.setMonth(8); d.getMonth();
结果为“ 9”,为什么?
我发现当月有31天时,请运行该setMonth方法,该getMonth方法将返回错误的值
setMonth
getMonth
为什么?
让我们分解一下:
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()。否则,它会按您期望的那样工作。
d
setMonth()