javascript - 计算javascript中一系列日期之间的重复日期

标签 javascript date datetime recurrence

递归实际如何运作不是问题。我想实现一种方法来计算具有指定重复间隔的两个日期之间的天数。这可能是每周、每月、每两个月(我不完全知道)每年等。到目前为止,我所做的最简单的事情是以下内容,它让我计算两个日期之间的所有天数,然后循环遍历它们每周重复一次,间隔七日。如果您能建议我更好、更正确地实现它,我将不胜感激。谢谢。

   //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/

相关文章:

android - 两个日期之间的差异无法正常工作?

sql-server - 我在 SSRS 中有一个 DD-MM-YYYY 格式的日期时间参数如何将日期时间参数的格式更改为 DD-MMM-YYYY

python - Pandas - 使用 read_csv 读取时间

javascript - React-Router:将 props 传递给 React-Router ^2.0.0 中的嵌套路由组件的最佳方法?

javascript - 原型(prototype)获取名为 Slideshow 的 div 中的所有 img 标签

javascript - Javascript 中的 Date.now 和 Date.getTime 有什么区别以及时区如何影响它们?

javascript - Date( 'YYYY-MM-DD' ) 构造一个比指定晚一天的日期 (Javascript)

javascript - 如何按日期升序对对象进行排序?

javascript - 使用 JavaScript 旋转图标无法正常工作

javascript - 使用 jQuery 计算 PRE 元素的行数