问题背景描述:
接到一个新的需求:
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)]
}
问题圆满结束