我有一个日期范围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) {
});
答案 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);
});