一个很奇怪的现象,关于Date
所有的书籍及文章都说到Date的构造函数中,月份的范围是0-11,0表示1月份,下面这段代码:
var d=new Date(2011,10,11);console.log(d.getFullYear() + "-" + d.getMonth());
本该是显示2011-11,但是在chrome及ie9中都显示
2011-10
这是为什么?
------解决方案--------------------2011-10 是代表11月 。
2011-0 是1月 。
------解决方案--------------------可能是浏览器对于js有了新的解释吧,我这里ie6也是这样
------解决方案--------------------getMonth获得的也是0~11的数据,有什么奇怪的?
------解决方案--------------------var d=new Date("2011/11/11"); d.getMonth()应该是10;
------解决方案--------------------因为 new Date(2011,10,11); 也是同样规则。10-11实际是11-11。
另外,你这个测试例子怎么这么傻,10和11正好差1,很容易把你自己搞晕。用2011,5,3差几个1的不就好点。
------解决方案--------------------
使用的格式有关系
你用 var d=new Date(2011,10,11);console.log(d.getFullYear() + "-" + d.getMonth());
会把你搞蒙 因为 10 ,11,只相差1
如果用你 var d=new Date(2011,5,11);console.log(d.getFullYear() + "-" + d.getMonth());
如果用你 var d=new Date(2011,11,5);console.log(d.getFullYear() + "-" + d.getMonth());
就可以知道问题出在哪儿?