2017-04-06 199 views
-2

濾波陣列我有一個對象如下:得到兩個日期之間的日期,按星期幾

{ 
    startDate: moment(), 
    endDate: moment().add(3, "weeks"), 
    friday: true 
    monday: true 
    saturday: false 
    sunday: false 
    thursday: false 
    tuesday: false 
    wednesday: true 
} 

什麼是獲得起始日期和結束日期匹配平日布爾那之間的日期數組的最佳方式?

預期的結果:[...日期(),日期(),日期()...]

兩個日期 endDate.diff(的startDate之間的天
+0

扭捏這一點來解決問題的http://計算器。 COM /問題/ 41194368 /如何到獲取,全週日,週一,週二,-日期間兩 –

回答

1

你根本就循環從startDateendDate使用時刻addisBefore

您可以使用format('dddd')獲得星期幾。

如果需要使用toDate()到時候轉換爲JavaScript日期

這裏工作示例:

function getDateArray(obj){ 
 
    var start = obj.startDate.clone(); 
 
    var end = obj.endDate.clone(); 
 
    var res = []; 
 
    while(start.isBefore(end)){ 
 
    var day = start.format('dddd').toLowerCase(); 
 
    if(obj[day]){ 
 
     res.push(start.toDate()); 
 
    } 
 
    start.add(1, 'd'); 
 
    } 
 
    return res; 
 
} 
 

 
var obj = { 
 
    startDate: moment(), 
 
    endDate: moment().add(3, "weeks"), 
 
    friday: true, 
 
    monday: true, 
 
    saturday: false, 
 
    sunday: false, 
 
    thursday: false, 
 
    tuesday: false, 
 
    wednesday: true 
 
}; 
 
var res = getDateArray(obj); 
 
console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

0

時刻的差異回報號, '天' )

然後從開始到啓動+差異for循環和每個 添加一天每一天的時刻()。添加(1,「天」)

相關問題