Javascript - 获取 2 个日期之间的日期数组
2022-08-30 00:31:23
var range = getDates(new Date(), new Date().addDays(7));
我希望“range”是一个日期对象数组,两个日期之间每天一个。
诀窍是它也应该处理月份和年份的边界。
var range = getDates(new Date(), new Date().addDays(7));
我希望“range”是一个日期对象数组,两个日期之间每天一个。
诀窍是它也应该处理月份和年份的边界。
Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}
function getDates(startDate, stopDate) {
var dateArray = new Array();
var currentDate = startDate;
while (currentDate <= stopDate) {
dateArray.push(new Date (currentDate));
currentDate = currentDate.addDays(1);
}
return dateArray;
}
我看了上面的所有。最后写了我自己。你不需要时刻js。本机 for 循环就足够了,并且最有意义,因为 for 循环的存在是为了计算某个范围内的值。
一个衬垫:
var getDaysArray = function(s,e) {for(var a=[],d=new Date(s);d<=new Date(e);d.setDate(d.getDate()+1)){ a.push(new Date(d));}return a;};
长版
var getDaysArray = function(start, end) {
for(var arr=[],dt=new Date(start); dt<=new Date(end); dt.setDate(dt.getDate()+1)){
arr.push(new Date(dt));
}
return arr;
};
列出介于以下日期之间的日期:
var daylist = getDaysArray(new Date("2018-05-01"),new Date("2018-07-01"));
daylist.map((v)=>v.toISOString().slice(0,10)).join("")
/*
Output:
"2018-05-01
2018-05-02
2018-05-03
...
2018-06-30
2018-07-01"
*/
从过去日期到现在的天数:
var daylist = getDaysArray(new Date("2018-05-01"),new Date());
daylist.map((v)=>v.toISOString().slice(0,10)).join("")