从JSON生成丢失的日期并使用jquery存储到数组中?

时间:2018-08-21 09:08:20

标签: jquery

我有一个日期范围json,我需要生成缺少的日期并将其存储到数组中,但我怎么办呢?

在json下面:

var availabilityJson = 0:{ Status : 1 
    DateFrom : "2018-08-22 00:00" 
    DateTo   : "2018-08-24 00:00" }
1:{ Status : 1 
    DateFrom : "2018-10-01 00:00" 
    DateTo   : "2018-11-30 00:00" }
2:{ Status : 1 
    DateFrom : "2018-12-15 00:00" 
    DateTo   : "2018-12-31 00:00" } 

因此,从json缺少的日期范围来看,上述范围是2018-08-25至2018-09-30。所以我需要生成像这样的缺失日期 2018-08-25,2018-08-25,...,2018-09-30,2018-12-01,... 2018-12-14 并存储到数组中。

我已经尝试过这样来生成丢失的日期,但是如何才能拍摄2个对象并生成丢失的日期。

var UnAvailable = $.grep(availabilityJson, function (object, index) {

});

1 个答案:

答案 0 :(得分:0)

最后,我必须获得成功并生成缺少的日期。

下面我已经完成了这段代码。

var startDateForFirstObject;var availabilityDates = [];
                var missingDatesForCustomeBoats = $.grep(availabilityJson, function (object, index) {                                              
                        var end = new Date(object.DateFrom);
                        if (index != 0) {                               
                            while (startDateForFirstObject < end) {
                                var day = (new Date(startDateForFirstObject).getDate().toString().length === 2 ? new Date(startDateForFirstObject).getDate() : "0" + new Date(startDateForFirstObject).getDate());
                                var monthIndex = ((new Date(startDateForFirstObject).getMonth() + 1).toString().length === 2 ? (new Date(startDateForFirstObject).getMonth() + 1) : "0" + (new Date(startDateForFirstObject).getMonth() + 1));
                                var year = new Date(startDateForFirstObject).getFullYear();
                                var fullDate = year + "" + monthIndex + "" + day;
                                availabilityDates.push(fullDate);
                                startDateForFirstObject.setDate(startDateForFirstObject.getDate() + 1);
                            }
                        }
                        startDateForFirstObject = new Date(object.DateTo);
                        startDateForFirstObject.setDate(startDateForFirstObject.getDate() + 1);
                });