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

问题背景描述:

接到一个新的需求:

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判断指定日期是周几,把该日期作为周开始,计算前一周后一周开始结束时间)