Ich habe ein Array von Objekten mit Datumsangaben, wenn ein Benutzer ein anderes Start- und Enddatum hinzugefügt hat, kann es nicht mit vorhandenen Daten im Array überlappen.Suche ist Datum zwischen Array von Anfangs- und Enddatum
Mit Moment
Ich habe diese Schleife aber kein Alarm ausgelöst wird, wenn ich Eingabe ein Datum, das
Mit Hilfe der Eingabedaten überlappt, startDate: "2013-09-02T00:00:00", endDate: "2015-05-05T00:00:0
, die Schleife über das letzte Array-Element sollte den Alarm ausgelöst, wie die Termine überlappen.
let resultData = data.row;
let array = this.props.sectionData;
let inputStartDate = Moment(resultData.startDate, "DD/MM/YYYY");
let inputEndDate = Moment(resultData.endDate, "DD/MM/YYYY");
array.forEach(function (i) {
if(i.startDate && i.endDate) {
let startDate = Moment(i.startDate, "DD/MM/YYYY");
let endDate = Moment(i.endDate, "DD/MM/YYYY");
if (inputStartDate.isBetween(startDate, endDate) || inputEndDate.isBetween(startDate, endDate)) {
alert('date range cannot overlap');
}
}
});
Meine Daten:
[
{"id": 3,
"startDate": 2013-09-01T00:00:00,
"endDate": 2013-09-01T00:00:00,
"description": null,
"userId": 900,
"userName": "",
"documents": [],
},
{
"id": 5,
"startDate": 2013-09-01T00:00:00,
"endDate": 2013-09-01T00:00:00,
"description": null,
"userId": 1,
"userName": "",
"documents": [],
"contributors": []
},
{
"id": 6,
"startDate": "2013-09-01T00:00:00",
"endDate": "2014-08-31T00:00:00",
"description": "content",
"userId": 1,
"userName": ""
},
Haben Sie überprüft, ist es definitiv in die Schleife, zumindest? – ADyson
auch, startdate und enddatum sind in YYYY-MM-DD hh: mm: ss-format, aber du fragst Moment zu analysieren sie als DD/MM/YYYY - das wird wahrscheinlich nicht funktionieren – ADyson
Danke für die antwort, Ja, für die gültigen Daten überprüft sie – Bomber