JS返回日期范围内包含的星期
例如:
选择日期:2019年03月25~2019年03月29
则返回:[1,2,3,4,5]
代码如下:
/**
* 获取日期范围包含的所有星期
* @param string startDate
* @param string endDate
* @return Array weeksArr
*/
//从开始日期每次递增一天,将日期对应的星期存储到数组中,最后返回该数组
function getWeeksFromDate(startDate, endDate) {
let beginDateObj = new Date(startDate);
let endDateObj = new Date(endDate);
let weeksArr = [];
while (beginDateObj <= endDateObj) {//直到结束日期,跳出循环
if ($.inArray(beginDateObj.getDay(), weeksArr) == -1) {//数组中不存在,则push到数组中
let weekNum = beginDateObj.getDay();
if (weekNum == 0) {//如果为0,则对应“周日”
weekNum = 7;
}
weeksArr.push(weekNum);
}
beginDateObj.setTime(beginDateObj.getTime() + 24 * 60 * 60 * 1000);//每次递增1天
}
return weeksArr;
}
let startDate = '2019-03-25';
let endDate = '2019-03-29';
console.log(getWeeksFromDate(startDate, endDate));// [1,2,3,4,5]