2017-07-04 19 views
2

の間のすべての月曜日は、私は、ユーザーがその日付範囲に特定の曜日を無効にすることを決定することができるので、私はブールMoment.js - 日付範囲

を持って
let start = moment(this.absence.FromDate); 
let end = moment(this.absence.ToDate); 

次のようになります日付範囲を持って取得
monday = true; 
tuesday = false; 
... 

日付範囲内のすべての月曜日を配列に格納できる関数を作成したいとします。

私は周りを見渡してきましたが、例えば月からすべての月曜日を必要とする人のためのヘルプを見つけることができます。あなたがあなたの日付isBeforeまで、.day(1)とループを使用して次月​​曜日得ることができます

+1

をこれまでに何を試しましたか? – evolutionxbox

+0

私はmomentjs()が曜日(0から6までの数字)を与える関数 'moment()。day()'を提供していることを覚えていると思います。あなたはそれで作業することができます。 – flocks

答えて

3

ここadd

生サンプル使用して反復ごとに7日を追加し、あなたの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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>