繁体   English   中英

使用momentjs / lodash,如何在两个日期之间增加天/周?

[英]Using momentjs / lodash, how can I add days / weeks between 2 dates?

我有一个开始日期(一个星期日)和一个结束日期(一个星期六),我想创建一个数组,在它们之间有所有的星期日。

这是我到目前为止的内容:

weeks = [{
      start: startDate,
      end: angular.copy(startDate).add(6, 'days')
    }];

    while(_.last(weeks).end <= endDate) {
      weeks.push({
        start: angular.copy(_.last(weeks)).start.add(7, 'days'),
        end: angular.copy(_.last(weeks)).end.add(7, 'days')
      })
    }

这感觉非常混乱,而且某种程度上是错误的。 它增加了几天,但只应增加一天。 我不太在乎end日期,但是如果我能得到,我会接受。

以下是一个基于while循环的简单解决方案。 我认为lodash语法只会使情况复杂化。

从第一个星期日开始,然后重复添加7天,直到结束星期六为止。 将矩对象的克隆推入数组。 如果不克隆,最终会得到与您继续引用单个矩对象相同日期的列表,在本例中为start

var start =  moment('2016-09-18'); //last sunday
var finish = moment('2016-10-29'); //saturday in october

// an array of moment objects
var sundays = [start.clone()]; // include the first sunday

// foreach additional sunday, clone it into an array
while(start.add(7, 'days').isBefore(finish)) {
  sundays.push(start.clone());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM