javascript - Moment.js - 获取日期范围内的所有星期一

标签 javascript angular typescript momentjs

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

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/

相关文章:

javascript - Bootstrap 4 + 国际电话输入解决方法

javascript - 使 Facebook 对话框提要框显示在与模式相同的窗口中,而不是弹出页面

Angular2无法解析provideLocationStrategy的所有参数

typescript - 在 @App 中使用管道不起作用 - ionic 2

javascript - 图像显示为链接后的空白

Angular 2 : get elementref on child component from parent

angular - 在 Angular 的 i18n 中是否有理由使用 XMB 和 XTB 消息格式而不是 XLF 或 XLIFF?

javascript - 从对象内部访问对象名称

node.js - 为什么 typeorm 需要 "reflect metadata"

javascript - 粘性绝对 DIV 在 IE 和 Safari 中闪烁