主页 > 前端 > javascript >
来源:自学PHP网 时间:2023-01-29 13:43 作者: 阅读:次
[导读] 本文章来给大家详细一下关于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 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com