代码:
getMonths = (time, len, direction = 1) => {
let mm = new Date(time).getMonth() + 1,
yy = new Date(time).getFullYear(),
newArr = [`${yy}-${mm}`],
newMm = mm,
newYy = yy
for (let index = 1; index <= len; index++) {
let frontMm = mm - index;
let afterMm = mm + index;
if (direction === 1) {
if (frontMm <= 0) {
newYy = yy - 1 - Math.abs(parseInt(frontMm / 12));
newMm = 12 * (Math.abs(parseInt(frontMm / 12)) + 1) + frontMm
} else {
newMm = frontMm
}
newArr.unshift(`${newYy}-${newMm}`)
} else if (direction === 2) {
if (afterMm > 12) {
newYy = yy + parseInt(afterMm / 12);
newMm = afterMm - 12 * parseInt(afterMm / 12)
if (newMm === 0) {
--newYy;
newMm = 12
}
} else {
newMm = afterMm
}
newArr.push(`${newYy}-${newMm}`)
} else {
return newArr
}
}
return newArr
}
使用说明:
time:参照日期
len:需要月份长度
direction:所需月份方向,1向前,2向后
使用示例: