如何使用jQuery从JSON数组中生成丢失的日期?

时间:2018-08-01 06:51:08

标签: jquery

我有一个日期范围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 并存储到数组中。

1 个答案:

答案 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>