得到两个日期之间的日期,按星期几

问题描述:

滤波阵列我有一个对象如下:得到两个日期之间的日期,按星期几

{ 
    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 /如何到获取,全周日,周一,周二,-日期间两 –

你根本就循环从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>

时刻的差异回报号, '天' )

然后从开始到启动+差异for循环和每个 添加一天每一天的时刻()。添加(1,“天”)