Moment.js - 获取日期范围之间的所有星期一 [英] Moment.js - Get all mondays between a date range

查看:1404
本文介绍了Moment.js - 获取日期范围之间的所有星期一的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a date range that looks like this

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

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

The user can decide to deactivate specific week days during that date range, so I have booleans

monday = true;
tuesday = false;
...

我想创建一个允许我在周一放置所有星期一的功能我在数组中的日期范围。

I want to create a function that allows me to put all mondays during my date range in an array.

我已经在堆栈中查看过,但我只能找到一个月需要所有星期一的人的帮助。

I've looked around on stack but I can only find help for people who need all the monday from a month for example.

推荐答案

你可以使用 .day(1) 然后循环直到您的日期 isBefore 你的结束使用 add 为每次迭代添加7天的日期

You can get next Monday using .day(1) and then loop until your date isBefore your end date adding 7 days for each iteration using add

这是一个实时样本:

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

这篇关于Moment.js - 获取日期范围之间的所有星期一的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆