1. 获取所有的天数:
话不多说直接上代码。
function getDateBetween(start,end){var result = [];
// 使用传入参数的时间
var startTime = new Date(start);
var endTime = new Date(end);
while(endTime - startTime>=0) {let year = startTime.getFullYear();
let month = startTime.getMonth().toString().length==1?"0"+(startTime.getMonth()+1).toString():startTime.getMonth();
let day = startTime.getDate().toString().length==1?"0"+startTime.getDate():startTime.getDate();
// 加入数组
result.push(year+"-"+month+"-"+day);
// 更新日期
startTime.setDate(startTime.getDate()+1);
}
return result;
}
测试结果:
console.log(getDateBetween('2020-06-17','2020-06-25'));
2. 获取所有的月份:
超级详细的注释
function getMonthBetween(start,end){
// 初始化数组
var result = [];
// 切割起始年月
var s = start.split("-");
// 切割结束年月
var e = end.split("-");
// 获取时间对象
var min = new Date();
var max = new Date();
// 设置起始时间
min.setFullYear(s[0],s[1]);
// 设置结束时间
max.setFullYear(e[0],e[1]);
// 复制一份起始时间对象
var curr = min;
// 定义字符串
var str = "";
// 起始时间在结束时间之前
while(curr <= max){
// 获取此时间的月份
var month = curr.getMonth();
// 如果月份为 0,也就是代表 12 月份
if(month===0){str=(curr.getFullYear()-1)+"-"+12;
}else{// 正常月份
str=curr.getFullYear()+"-"+(month<10?("0"+month):month);
}
// 将此年月加入数组
result.push(str);
// 更新此时间月份
curr.setMonth(month+1);
}
return result;
}
测试结果:
console.log(getMonthBetween('2018-09','2020-02'));
3. 获取所有的年份:
function getYearBetween(start,end){var result = [];
// 使用传入参数的时间
var startTime = new Date(start);
var endTime = new Date(end);
while(endTime - startTime>=0) {
// 获取年份
let year = startTime.getFullYear();
// 加入数组
result.push(year);
// 更新日期
startTime.setFullYear(startTime.getFullYear()+1);
}
return result;
}
测试结果:
console.log(getYearBetween('2017','2020'));