我有一系列日期:
var from = moment("01/01/2018", "DD/MM/YYYY")
var to = moment("31/01/2018", "DD/MM/YYYY")
var range = moment.range(from, to)
我需要的是在特定日期内获得上述范围的范围! 例如:如果我只需要周一到周四的范围,结果将是:
01/01/2018 - 04/01/2018
08/01/2018 - 11/01/2018
15/01/2018 - 18/01/2018
22/01/2018 - 25/01/2018
29/01/2018 - 31/01/2018
请注意,用户可能需要获取以下日期的天数:星期一,星期三,星期四,星期日 - 这会让事情变得复杂......
在片刻范围内有没有一种聪明的方法可以做到这一点,而不是从一个范围数组中读取每一天并在一天之内得到结果?
问题的一个解决方案是将范围分成几天:
例如:让工作日为:0 =星期日,1 =星期一,2 =星期二......等等
var weekdays = [0,1,2,3]
var range = moment.range(from, to)
rangeDate = Array.from(range.by('day',{ step: 1 }))
dailyRange = rangeDate.filter( date => weekdays.includes(date.day()) )
结果是数组中需要过滤的天数! 这样做的问题是你得到的是每日结果,而不是范围结果可以应用范围(当按顺序2天或更多天时)!