时间选择器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之后,就没有这个问题了。

posted @ 2015-10-29 10:57  牧云人生  阅读(186)  评论(0)    收藏  举报