Javascript 获取两个日期之间的日期数组,按dayofweek筛选

Javascript 获取两个日期之间的日期数组,按dayofweek筛选,javascript,angularjs,momentjs,Javascript,Angularjs,Momentjs,我的目标如下: { startDate: moment(), endDate: moment().add(3, "weeks"), friday: true monday: true saturday: false sunday: false thursday: false tuesday: false wednesday: true } 获取startDate和endDate之间与工作日布尔值匹配的日期数组的最佳方法是什么 预期结果:[…日期(),日期()

我的目标如下:

{
  startDate: moment(),
  endDate: moment().add(3, "weeks"),
  friday: true
  monday: true
  saturday: false
  sunday: false
  thursday: false
  tuesday: false
  wednesday: true
}
获取startDate和endDate之间与工作日布尔值匹配的日期数组的最佳方法是什么


预期结果:[…日期(),日期(),日期()…]

两个日期之间的矩差返回天数 endDate.diff(开始日期,“天”)

然后forloop从开始到开始+差异,每增加一天
添加(1,'days')

您只需使用矩和键从
startDate
循环到
endDate

您可以使用获取一周中的某一天

如果需要使用将时刻转换为JavaScript日期

这里是一个工作示例:

函数getDateArray(obj){ var start=obj.startDate.clone(); var end=obj.endDate.clone(); var-res=[]; while(start.isBefore(end)){ var day=start.format('dddd').toLowerCase(); 如果(obj[天]){ res.push(start.toDate()); } 开始。添加(1,'d'); } 返回res; } var obj={ 起始日期:力矩(), endDate:moment().添加(3,“周”), 星期五:是的, 星期一:没错, 星期六:错, 星期日:错, 星期四:错, 星期二:错, 星期三:对 }; var res=getDateArray(obj); 控制台日志(res)
稍微调整一下,以解决您的问题