目录
两个日期区间的所有时间
获取两个日期区间的所有时间
let start = "2018-12-06"; let end = "2019-11-06";
返回两个日期区间的所有时间
let start = "2018-12-06";
let end = "2019-11-06";
function getYearMonthStr(time) {
if (!time) return;
let yearNum, mouthNum;
const timeArr = time.split("-");
const month = timeArr[1];
yearNum = timeArr[0];
if (Number(month) < 10 && month.length == 2) {
mouthNum = month.split("")[1]
} else {
mouthNum = month
}
return [yearNum, mouthNum]
}
function getTimeArr(startTime, endTime) {
let mouthCount;
let timeArr = [];
let yearMission = endTime[0] - startTime[0];//年差
let mouthMission = endTime[1] - startTime[1];//月插
if (yearMission > 0 && mouthMission >= 0) {// 如果年差月差同时大于0说明年分不用减一
mouthCount = yearMission * 12 + mouthMission;
} else if (yearMission == 0 && mouthMission >= 0) { //年差大于零只保存月差
mouthCount = mouthMission;
} else if (yearMission < 0 || (yearMission == 0 && mouthMission < 0)) { //结束时间大于开始时间
console.log("结束时间大于开始时间");
return;
} else {
mouthCount = (yearMission - 1) * 12 + (12 - Math.abs(mouthMission));
}
let startYear = Number(startTime[0]);
let startMouth = Number(startTime[1]) - 1;
let previousMouth = startMouth;//记录上个月
for (let i = 0; i <= mouthCount; i++) {
if (previousMouth == 12) {//12进1
startYear = startYear + 1;
startMouth = 1;
} else {
startMouth = startMouth + 1;
}
previousMouth = startMouth;
timeArr.push(`${startYear}-${startMouth}`)
}
return timeArr;
}
console.log(getTimeArr(getYearMonthStr(start), getYearMonthStr(end)));
// [ '2018-12',
// '2019-1',
// '2019-2',
// '2019-3',
// '2019-4',
// '2019-5',
// '2019-6',
// '2019-7',
// '2019-8',
// '2019-9',
// '2019-10',
// '2019-11' ]
Powered by Waline v2.15.5