获取当前周和下一周的日期
//获取当前周和下一周的日期
export function afterGetWeek(date, type) {
var date = new Date(date);
var curMonDayDate;
var curWeek = date.getDay(); //获取当前是周几,周日为0
if (curWeek == 0) {
curWeek = 7;
}
var stDay = 1 - curWeek; //周一和当前差多少天,得出为非正数
curMonDayDate = addDate(date, stDay); //获取当前周的周一日期
var arrDate = [];
for (var i = 0; i < 14; i++) {
arrDate.push(addDate(new Date(curMonDayDate), i));
}
var list = arrDate.slice(0, 7);
var nextLsit = arrDate.splice(-7, 7); //获取下个周日期
var dateArr = [...list, ...nextLsit];
if (type == 1) {
return list; //当前周日期
} else if (type == 2) {
return nextLsit; //下一周日期
} else if (type == 3) {
return dateArr; //当前周及下一周的所有日期
}
}
//增加天数
function addDate(date, days) {
var d = new Date(date);
d.setDate(d.getDate() + days);
var m = d.getMonth() + 1;
return (
d.getFullYear() +
"-" +
(m < 10 ? "0" + m : m) +
"-" +
(d.getDate() < 10 ? "0" + d.getDate() : d.getDate())
);
}
调用方法
this.week = getYearWeek(new Date(val)); //获取当前日期为本年的第几周
let nowTime = afterGetWeek(val, 1); //获取当前周的所有日期,参数为1,返回参数为数组
let aTime = nowTime[0]; //数组的第一个参数为当前周的起始日期
let eTime = nowTime[6]; 数组的最后一个参数为当前周的截止日期
计算本年的周数
//计算本年的周数
export function getYearWeek(endDate) {
//本年的第一天
var beginDate = new Date(endDate.getFullYear(), 0, 1);
//星期从0-6,0代表星期天,6代表星期六
var endWeek = endDate.getDay();
if (endWeek == 0) endWeek = 7;
var beginWeek = beginDate.getDay();
if (beginWeek == 0) beginWeek = 7;
//计算两个日期的天数差
var millisDiff = endDate.getTime() - beginDate.getTime();
var dayDiff = Math.floor(
(millisDiff + (beginWeek - endWeek) * (24 * 60 * 60 * 1000)) / 86400000
);
return Math.ceil(dayDiff / 7) + 1;
}