美文网首页
js判断指定日期是周几,把该日期作为周开始,计算前一周后一周开始

js判断指定日期是周几,把该日期作为周开始,计算前一周后一周开始

作者: 爱吃爱睡的刘月半 | 来源:发表于2019-09-30 08:59 被阅读0次

    问题背景描述:

    接到一个新的需求:

    1.要求根据系统设置的日期判断是周几,并将这个日期计算得到的结果作为周的开始;然后输入任意时间,输出周开始日期和结束日期、前一周和后一周的开始结束日期;

    2.计算月开始日期和结束日期

    解决办法:

    1.计算周

        //defaultDate:系统设置日期,用于计算周几为周开始     
        //AddWeekCount:0 为当前周  1为下一周   -1为上一周    
        //date:任意时间     
        getWeekStartAndEnd(defaultDate,AddWeekCount,date) {
          //一天的毫秒数
          var millisecond = 1000 * 60 * 60 * 24;
          //获取时间
          var currentDate = date;
          //相对于任意日期AddWeekCount个周的日期
          currentDate = new Date(currentDate.getTime() + (millisecond * 7*AddWeekCount));
          //返回date是一周中的某一天
          var week = currentDate.getDay();
          //返回date是一个月中的某一天
          var month = currentDate.getDate();
          // //从周几开始计算
          var weekNumber = new Date(defaultDate).getDay()
          if( week < weekNumber){
              var minusDay = 7-(weekNumber - week)
          }else{
              var minusDay = week - weekNumber
          }
          //获得周的第一天
          var currentWeekFirstDay = new Date(currentDate.getTime() - (millisecond * minusDay));
          //获得周的最后一天
          var currentWeekLastDay = new Date(currentWeekFirstDay.getTime() + (millisecond * 6));
          return [currentWeekFirstDay,currentWeekLastDay]
        }
    

    2.计算月

    getMonthStartAndEnd(date){
            //获取当前月第一天和最后一天
            var currentMonth=date.getMonth();
            var nextMonth=++currentMonth;
            var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
            var oneDay=1000*60*60*24;
            return [new Date(date.setDate(1)),new Date(nextMonthFirstDay-oneDay)]
        }
    

    问题圆满结束

    相关文章

      网友评论

          本文标题:js判断指定日期是周几,把该日期作为周开始,计算前一周后一周开始

          本文链接:https://www.haomeiwen.com/subject/dbgiyctx.html