简介
通过封装一个函数,输入开始和结束日期,返回这日期之间的日期数组(核心就是 Date 对象的操作)。
学习
这里有关 Date 日期的知识,https://www.w3school.com.cn/js/js_obj_date.asp,有空再回头改一下下面的低质量代码。
代码
// 代码从网上找到的,这里记录方便查找
// 根据起始日期和结束日期获取时间段数组
// 输入日期的格式:"2021-01-01"
function getAllDate(day1, day2) {
// fix : 修复输入两个一样日期导致出错
if(day1 === day2){
return [day1]
}
var getDate = function(str) {
var tempDate = new Date();
var list = str.split("-");
tempDate.setFullYear(list[0]);
tempDate.setMonth(list[1] - 1);
tempDate.setDate(list[2]);
return tempDate;
}
var date1 = getDate(day1);
var date2 = getDate(day2);
if (date1 > date2) {
var tempDate = date1;
date1 = date2;
date2 = tempDate;
}
date1.setDate(date1.getDate() + 1);
var dateArr = [];
var i = 0;
while (!(date1.getFullYear() == date2.getFullYear()
&& date1.getMonth() == date2.getMonth()
&& date1.getDate() == date2.getDate())) {
var dayStr = date1.getDate().toString();
if(dayStr.length == 1){
dayStr = "0" + dayStr;
}
var monthStr = (date1.getMonth() + 1) < 10 ? "0" + (date1.getMonth() + 1):date1.getMonth() + 1;
dateArr[i] = date1.getFullYear() + "-" + monthStr + "-" + dayStr;
i++;
date1.setDate(date1.getDate() + 1);
}
dateArr.splice(0,0,day1)
dateArr.push(day2);
return dateArr;
}
网友评论