首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

一个很奇怪的现象,关于Date,该如何处理

2012-05-22 
一个很奇怪的现象,关于Date所有的书籍及文章都说到Date的构造函数中,月份的范围是0-11,0表示1月份,下面这

一个很奇怪的现象,关于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());
就可以知道问题出在哪儿? 

热点排行
Bad Request.