js date的setMonth()方法踩坑

 直播日历需求:当天日期标红,点击日期时也标红,当点击上一月或者下一月时默认日期是点击的日期。

 当当天日期或点击日期是31的时候。从1月点击下一月 , 因为2月没有31号,那会直接把2月跳过去,没有31号的月份都会直接跳过
代码是:
 

  //点击下月的时候
    $('.live-calendar_next').on('click', function () {
      var mon=dateValue(curDate.getMonth());
      curDate.setMonth(curDate.getMonth() + 1)
      // curDate.setMonth(curDate.getMonth() + 1, 1); //下一月  对curDate对象的month来说已经是下一月的值
      var n=curDate.getMonth();
      //该月 哪些日期有直播,有几条直播
       var month=dateValue(curDate.getMonth()+1); //在加1,只是把month从0到11 加1就是我们认识的月份
      initCalendarLiveAlert(curDate.getFullYear(),month);
      //查下月当天有直播
      liveCalendar(curDate.getFullYear()+'-'+month+'-'+day);
      //时间 漏点
      video_date = formartDate(curDate.getFullYear(), month, day);
    })


用curDate.setMonth(curDate.getMonth() + 1, 1); 这段代码就好。当月份没有31号的时候就会不标红但不至于 直接跳过月份。
 

点击上一月的时候:
 

//点击上月的时候
    $('.live-calendar_prev').on('click', function () {
      curDate.setMonth(curDate.getMonth()- 1,1); //上月
     var month=dateValue(curDate.getMonth()+1);   //在加1,只是把month从0到11 加1就是我们认识的月份
      //初始化直播日历下面的直播提醒图标
      initCalendarLiveAlert(curDate.getFullYear(),month);
        //查上月当天有直播
      liveCalendar(curDate.getFullYear()+'-'+month+'-'+day);
       //时间 漏点
      video_date = formartDate(curDate.getFullYear(), month, day);
    })

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值