Moment.js - 获取日期范围之间的所有星期一

时间:2017-07-04 15:25:24

标签: javascript angular typescript momentjs

我的日期范围看起来像这样

let start = moment(this.absence.FromDate);
let end = moment(this.absence.ToDate);

用户可以决定停用该日期范围内的特定工作日,因此我有布尔值

monday = true;
tuesday = false;
...

我想创建一个函数,允许我将日期范围内的所有星期一放在数组中。

我已经在堆栈上四处寻找,但我只能为那些需要一个月的所有星期一的人找到帮助。

1 个答案:

答案 0 :(得分:9)

您可以使用.day(1)转到下周一,然后使用isBefore

循环,直到您的end日期为//let start = moment(this.absence.FromDate); //let end = moment(this.absence.ToDate); // Test values let start = moment(); let end = moment().add(45 , 'd'); var arr = []; // Get "next" monday let tmp = start.clone().day(1); if( tmp.isAfter(start, 'd') ){ arr.push(tmp.format('YYYY-MM-DD')); } while( tmp.isBefore(end) ){ tmp.add(7, 'days'); arr.push(tmp.format('YYYY-MM-DD')); } console.log(arr);日期,为每次迭代添加7天

这是一个实时样本:



<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
&#13;
{{1}}
&#13;
&#13;
&#13;