递归实际如何运作不是问题。我想实现一种方法来计算具有指定重复间隔的两个日期之间的天数。这可能是每周、每月、每两个月(我不完全知道)每年等。到目前为止,我所做的最简单的事情是以下内容,它让我计算两个日期之间的所有天数,然后循环遍历它们每周重复一次,间隔七日。如果您能建议我更好、更正确地实现它,我将不胜感激。谢谢。
//Push in the selected dates in the selected array.
for (var i = 1; i < between.length; i += 7) {
selected.push(between[i]);
console.log(between[i]);
}
最佳答案
此函数为两个日期之间的每个 [interval] 和 [intervalType](例如,每 1 个月)提供一个日期。如有必要,它还可以在周末更正日期。这是你的想法吗?
这里是jsFiddle demo .
function recurringDates(startDate, endDate, interval, intervalType, noweekends) {
intervalType = intervalType || 'Date';
var date = startDate;
var recurrent = [];
var setget = {set: 'set'+intervalType, get: 'get'+intervalType};
while (date < endDate) {
recurrent.push( noweekends ? noWeekend() : new Date(date) );
date[setget.set](date[setget.get]()+interval);
}
// add 1 day for sunday, subtract one for saturday
function noWeekend() {
var add, currdate = new Date(date), day = date.getDay();
if (~[6,0].indexOf(day)) {
currdate.setDate(currdate.getDate() + (add = day == 6 ? -1 : 1));
}
return new Date(currdate);
}
return recurrent;
}
关于javascript - 计算javascript中一系列日期之间的重复日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27763086/