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'));