Zeichenkettenvergleich von Datumsangaben in JavaScript
Nehmen wir an, wir haben zwei Datumsangaben im folgenden Text- format:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
In diesem Fall kann man diese Datumsangaben vergleichen und herausfinden, welches der beiden Datumsangaben größer ist:
console.log(date1 > date2); // gibt true aus
Wie funktioniert dieser Vergleich der Datumsangaben? Die Sache ist die, dass unsere Datumsangaben Zeichenketten darstellen und JavaScript vergleicht sie als Zeichenketten. Das bedeutet, es vergleicht zuerst die ersten Zeichen der beiden Datumsangaben: wenn sie gleich sind, dann vergleicht JavaScript die zweiten Zeichen, und so weiter, bis es einen Unterschied findet. Dadurch, dass in unserem Format zuerst das Jahr, dann der Monat und dann der Tag stehen, ist ein solcher Vergleich möglich.
Der Punkt ist: Wenn die Ziffer des ersten Jahres größer ist als die Ziffer des zweiten Jahres, dann spielt es bereits keine Rolle mehr, wie es mit den Monaten und Tagen aussieht - das erste Jahr ist definitiv größer. Wenn die Jahre jedoch übereinstimmen, dann ist das Datum größer, bei dem der Monat größer ist. Und wenn auch die Monate übereinstimmen, dann ist das Datum größer, bei dem der Tag größer ist. Nun, und wenn auch die Tage gleich sind, dann sind die Datumsangaben gleich.
Es ist auch wichtig, dass die Datumsangaben im gleichen Format vorliegen. In unserem Fall sind die Trennzeichen der Datumsteile Bindestriche. Das ist natürlich nicht zwingend erforderlich. Man kann beispielsweise Punkte setzen:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Oder die Trennzeichen ganz weglassen:
let date1 = '20201201';
let date2 = '20191201';
Das Wichtigste für einen korrekten Vergleich ist die folgende Anordnung: zuerst Jahr, dann Monat, dann Tag.
Schreiben Sie Code, der die beiden unten angegebenen Datumsangaben vergleicht und eine Meldung ausgibt, welche von ihnen größer ist:
let date1 = '2020-11-30';
let date2 = '2020-12-01';