时间选择器setMonth问题
最近做了一个时间选择器,刚做完的时候一切ok,但是今天却出现了一个问题。每当我按上一个月份时,它到3月时就会卡住,跳不过去。并且不是每个年份都会,而是有的年会,有的年不会。为了检查是不是我的时间选择器的其他地方出了问题,还是这段设置时间的代码出了问题。我新建了一个页面来测试,代码如下
var changeTime={ year:2015, month:9 }; var prev=document.getElementById('prev'); var next=document.getElementById('next'); prev.onclick=function(){ var time=new Date(); time.setFullYear(changeTime.year); time.setMonth(changeTime.month-1); changeTime.year=time.getFullYear(); changeTime.month=time.getMonth(); console.log(time.getFullYear()+'-'+time.getMonth()); };
结果跑到三月的时候还是卡住了。这是为什么呢?为什么到了三月就没办法切换到2月了。最后我发现是天数的原因。一年12个月里面,月份的天数一共有四种,分别是31,30,29,28。这就是问题所在了。我在运行这段代码的号数是29号.这也就造成了这个问题。定义一个时间函数,时间函数获取的是当天的时间。此时我这个时间函数的天数就是29。而2015年的2月只有28天,这也就是说定义2月的天数为29号时,它会自动换算成3月1号。这也就是为什么我一直都点不到2月去的原因了。后面我设置了天数为1之后,就没有这个问题了。

浙公网安备 33010602011771号