1 回答
TA贡献1868条经验 获得超4个赞
// 转换为时间戳
var startTime = new Date("2017-11").getTime();
var endTime = new Date("2018-03").getTime();
// 存放结果
var arr = []
// 最后的格式转换
var format = function(time) {
var date = new Date(time)
return date.getFullYear() + '-' + (date.getMonth() + 1)
}
// 判断是否为闰年
var isLeapYear = function(year) { return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0) }
// 月份映射 假设不为闰年
var MONTH = {
'1': 31,
'2': 28,
'3': 31,
'4': 30,
'5': 31,
'6': 30,
'7': 31,
'8': 31,
'9': 30,
'10': 31,
'11': 30,
'12': 31
}
arr.push("2017-11")
while (startTime < endTime) {
// 转换时间格式
var start = new Date(startTime)
// 判断是否为闰年的2月份
if (isLeapYear(start.getFullYear()) && (start.getMonth() + 1 === 2)) {
startTime = startTime + 29 * 24 * 60 * 60 * 1000
} else {
// 其他情况
startTime = startTime + MONTH[start.getMonth() + 1] * 24 * 60 * 60 * 1000
}
arr.push(format(startTime))
}
arr.push("2018-03")
console.log(arr)
添加回答
举报