// 月份不足十位的补零
function complementZero (num) {
if (num > 0 && num < 10) {
return `0${num}`;
} else if (num >= 10 && num <= 12) {
return `${num}`;
}
}
// 获取当前时间距离目标时间的年月
function getYearAndMonthOfMinus (targetTime) {
let dateAry = [];
// 获取目标时间的年月
let baseDate = new Date(targetTime);
let baseYear = baseDate.getFullYear();
let baseMonth = baseDate.getMonth() + 1;
// 获取当前时间的年月
let currentDate = new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
// 年份差
let minusYear = currentYear - baseYear;
// 当前时间 生成的年月,例如2021-04-07 则生成的就是 -> [ '2021-04', '2021-03', '2021-02', '2021-01' ]
for (let i = currentMonth; i > 0; i--) {
dateAry.push(`${currentYear}-${complementZero(i)}`);
}
// 中间相差的整年 则生成的就是 -> ['2020-12','2020-11', ... '2020-03', '2020-02', '2020-01']
for (let i = 1; i < minusYear; i++) {
for (let j = 0; j < 12; j++) {
dateAry.push(`${currentYear - i}-${complementZero(12 - j)}`);
}
}
// 给定目标时间 例如2019-12-01 则生成的就是 -> ['2019-12']
for (let i = 12; i >= baseMonth; i--) {
dateAry.push(`${baseYear}-${complementZero(i)}`);
}
return dateAry;
}
getYearAndMonthOfMinus('2019-12-01');
// 输出结果
[ '2021-04',
'2021-03',
'2021-02',
'2021-01',
'2020-12',
'2020-11',
'2020-10',
'2020-09',
'2020-08',
'2020-07',
'2020-06',
'2020-05',
'2020-04',
'2020-03',
'2020-02',
'2020-01',
'2019-12' ]
获取当前时间距离目标时间的年月
最新推荐文章于 2024-04-25 11:07:58 发布