该方法使用的是递归的算法来计算获取,如果有需要的可以拿去使用,但是请注意你所需要的日期格式!!
const startTime = 201901; // 选择开始时间
const endTime = 202001; // 选择结束时间
const startYear = startTime.substr(0, 4); // 选择开始年分
const endYear = endTime.substr(0, 4); // 选择结束年分
this.diffYear(startYear, startTime, endYear, endTime);
diffYear(startYear, startTime, endYear, endTime) {
let month;
if (Number(startYear) === Number(endYear)) {
const diffMonth =
Number(endTime.substr(4, 2)) - Number(startTime.substr(4, 2)); // 相差月数
for (let i = 0; i <= diffMonth; i++) {
month = Number(startTime.substr(4, 2)) + i;
month = month < 10 ? `0${month}` : month;
this.tags.push(`${startYear}${month}`);
}
if (diffMonth === 0) return false;
} else {
const count = 12 - Number(startTime.substr(4, 2));
for (let i = 0; i <= count; i++) {
month = Number(startTime.substr(4, 2)) + i;
month = month < 10 ? `0${month}` : month;
this.tags.push(`${startYear}${month}`);
}
startYear = Number(startYear) + 1;
startTime = `${startYear}01`;
this.diffYear(startYear, startTime, endYear, endTime);
}
},

网友评论