我有一个日期范围json,我需要生成丢失的日期并将其存储到数组中,但是我不知道该怎么办。
在json下面:
0:{ AvailabilityStatus : 1
DateFrom : "2018-08-04 00:00"
DateTo : "2018-08-11 00:00" }
1:{ Status : 1
DateFrom : "2018-08-11 00:00"
DateTo : "2018-08-18 00:00" }
2:{ Status : 1
DateFrom : "2018-09-01 00:00"
DateTo : "2018-09-08 00:00" }
3:{ Status : 1
DateFrom : "2018-09-08 00:00"
DateTo : "2018-09-15 00:00" }
因此,从json缺少的日期范围来看,上述范围是 2018-08-19 至 2018-08-31 。 所以我需要生成像这样的缺少日期 2018-08-19,2018-08-20,...,2018-08-31 并存储到数组中。
答案 0 :(得分:1)
使用momentJs库(https://momentjs.com/docs/),您可以执行以下操作:
var startRange = moment.utc("2018-08-18 00:00").add(1, 'days'); // add one day to the start to not include the start date;
var endRange = moment.utc("2018-09-01 00:00");
var result = [];
while ( startRange.isBefore(endRange, 'day') ) {
result.push(startRange.toDate());
startRange.add(1, 'days');
}
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>