我有一个看起来像这样的日期范围
let start = moment(this.absence.FromDate);
let end = moment(this.absence.ToDate);
用户可以决定在该日期范围内停用特定的工作日,所以我有 bool 值
monday = true;
tuesday = false;
...
我想创建一个函数,允许我将我的日期范围内的所有星期一放在一个数组中。
我查看了堆栈,但我只能为需要一个月中所有星期一的人找到帮助。
最佳答案
您可以使用 .day(1)
获取下周一然后循环直到你的约会isBefore
您的 end
日期使用 add
为每次迭代添加 7 天
这里是一个活生生的例子:
//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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
关于javascript - Moment.js - 获取日期范围内的所有星期一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44909662/