百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> javascript Date对象setMonth方法的bug
分享文章到:

javascript Date对象setMonth方法的bug

发布时间:01/15 来源: 浏览: 关键词:
本文章来给大家详细一下关于javascript Date对象setMonth方法的bug与解决办法,各位朋友可参考。

其实耶谈不上什么BUG,只是JS Date对象对溢出时间进行了自己的处理。

首先把你的系统时间设为2013年1月31号,这一步很重要,不然可能不会发生这个BUG,然后执行下面的代码

 

 代码如下
var t = new Date();
t.getMonth(); //输出0,现在获取的是正确的值,因为getMonth是从0开始索引的
t.setMonth(3); //设置月份为4月
t.getMonth(); //输出4,这里本应该输出3的var t = new Date();
t.getMonth(); //输出0,现在获取的是正确的值,因为getMonth是从0开始索引的
t.setMonth(3); //设置月份为4月
t.getMonth(); //输出4,

这里本应该输出3的你会发现,你明明设置了Month值为3,但getMonth时候却输出4。此时,你可能会比较疑惑。我们再来看看现在的时间

 

 代码如下
console.log(t); //Wed May 01 2013 11:47:31 GMT+0800 (CST)console.log(t); //Wed May 01 2013 11:47:31 GMT+0800 (CST)setMonth(3)

指定设置日期到4月份,但4月份只有30天,此时的时间是2013-04-31,但4月并没有31天。所以js对溢出日期进行了处理,自动将月份设到5月1号

针对这个问题也很好解决,只要在setMonth之前把日期设置到每月都有的日期,1-28都可以。

 代码如下


var t = new Date();
t.setDate(1);
t.setMonth(3);
t.getMonth();//输出3

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有2人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板