Heim > Artikel > Web-Frontend > Wie kann ich in JavaScript überprüfen, ob ein Datum zwischen zwei Datumsangaben liegt?
In JavaScript können wir das Date()-Objekt verwenden, um verschiedene Zeitstempel zu erstellen. Darüber hinaus müssen wir möglicherweise JavaScript verwenden, um zu prüfen, ob ein Datum zwischen zwei Datumsangaben liegt.
Zum Beispiel möchten wir einen Filter für Bestellungen in einer E-Commerce-Anwendung basierend auf dem Datum erstellen. Wir sollten also in der Lage sein, alle Bestellungen zwischen zwei vom Benutzer im Datumseingabefeld eingegebenen Daten zu filtern.
Ein weiterer praktischer Anwendungsfall für die Prüfung zwischen zwei Daten sind Bankanwendungen. Wenn ein Entwickler beispielsweise eine Bankensystemanwendung entwickelt, muss er einen Filter erstellen, der es dem Benutzer ermöglicht, alle Transaktionen zwischen zwei Daten zu sortieren.
In JavaScript können wir zwei Instanzen von Datumsobjekten vergleichen. Wenn wir zwei Instanzen von Date-Objekten vergleichen, wird die Gesamtzahl der Millisekunden seit dem 1. Januar 1970 zwischen den beiden Datumsangaben verglichen.
So können wir zwei Daten ganz normal vergleichen, genau wie beim Vergleichen von Zahlen in JavaScript, und sicherstellen, dass ein Datum zwischen den anderen beiden Daten liegt.
Benutzer können der folgenden Syntax folgen, um sicherzustellen, dass ein Datum zwischen zwei Datumsangaben in JavaScript liegt.
if (date1 < date2 && date2 < date3) { // date2 is between the date1 and date3 } else { // date2 is not between the date1 and date3 }
In der obigen Syntax können Benutzer erkennen, dass, wenn Datum2 größer als Datum1 und Datum2 kleiner als Datum3 ist, bedeutet, dass Datum2 zwischen Datum1 und Datum3 liegt.
Im folgenden Beispiel erstellen wir drei verschiedene Zeitstempel mit dem Konstruktor des Date-Objekts. Danach verwenden wir die in der obigen Syntax erläuterte Logik, um zu prüfen, ob Datum2 zwischen Datum1 und Datum3 liegt.
In der Ausgabe kann der Benutzer beobachten, dass Datum2 zwischen Datum1 und Datum3 liegt.
<html> <body> <h2><i>Comparing the dates</i> to check if one date is between two.</h2> <p id="output"> </p> <script> let output = document.getElementById("output"); let date1 = new Date(2020, 03, 11); let date2 = new Date(2022, 03, 12); let date3 = new Date(); if (date1 < date2 && date2 < date3) { output.innerHTML += date2 + " is between <br> " + date1 + " <br> and <br> " + date3; } else { output.innerHTML += date2 + " is not between the " + date1 + " <br> and <br>" + date3; } </script> </body> </html>
Betrachten wir nun das Szenario, in dem wir keinen Zeitstempel als Standarddatumsobjekt erhalten, sondern das Datum in ein Zeichenfolgenformat formatiert wird. Wir müssen also Jahr, Monat und Tag aus der Datumszeichenfolge extrahieren. Danach müssen wir einen Standardzeitstempel für den aus der Zeichenfolge erhaltenen Wert erstellen und diese vergleichen, wie wir es im vorherigen Abschnitt getan haben.
Wenn eine zufällig formatierte Zeichenfolge angegeben wird, kann der Benutzer anhand der folgenden Syntax überprüfen, ob ein Datum zwischen zwei Datumsangaben liegt.
// splitting the dates let [year1, month1, date1] = prev_date.split(","); let [year2, month2, date2] = current_date.split(","); let [year3, month3, date3] = final_date.split(","); // creating new formatted dates prev_date = new Date(year1, month1 - 1, date1); current_date = new Date(year2, month2 - 1, date2); final_date = new Date(year3, month3 - 1, date3); if (prev_date < current_date && current_date < final_date) { // current_date is between the prev_date and final_date } else{ // current_date is not between the prev_date and final_date }
In der obigen Syntax haben wir das Trennzeichen „,“ verwendet, um die Zeichenfolge zu teilen, aber der Benutzer kann sie basierend auf der angegebenen Datumszeichenfolge aufteilen. Danach dekonstruieren wir das aus der Split-Methode erhaltene Array und erstellen unter Verwendung des Werts einen neuen Standard-Datumszeitstempel.
In diesem Beispiel haben wir drei Datumszeichenfolgen verwendet. Als nächstes trennen wir sie, ermitteln die Jahres-, Monats- und Datumswerte und verwenden sie, um ein neues Datum zu erstellen.
Danach vergleichen wir die neuen Zeitstempel, um sicherzustellen, dass current_date zwischen prev_date und Final_date liegt.
<html> <body> <h3>Create a new date from <i> date string and compare them </i> to check if one date is between two</h3> <p id = "output"> </p> <script> let output = document.getElementById("output"); let prev_date = "2022,10,23"; let current_date = "2021,11,22"; let final_date = "2023,12,30"; let [year1, month1, date1] = prev_date.split(","); let [year2, month2, date2] = current_date.split(","); let [year3, month3, date3] = final_date.split(","); prev_date = new Date(year1, month1 - 1, date1); current_date = new Date(year2, month2 - 1, date2); final_date = new Date(year3, month3 - 1, date3); if (prev_date < current_date && current_date < final_date) { output.innerHTML += current_date + " is between <br>" + prev_date + "<br> and <br> " + final_date; } else { output.innerHTML += current_date + " is not between <br>" + prev_date + " <br> and <br> " + final_date; } </script> </body> </html>
Benutzer haben zwei Möglichkeiten kennengelernt, um zu überprüfen, ob ein Datum zwischen zwei anderen Daten liegt. Der Benutzer kann die erste Methode verwenden, wenn er einen Standardzeitstempel eines Datumsobjekts erhält. Andernfalls kann der Benutzer verschiedene Werte aus der Datumszeichenfolge extrahieren und diese verwenden, um neue Instanzen des Datumsobjekts zu erstellen und diese zu vergleichen.
Das obige ist der detaillierte Inhalt vonWie kann ich in JavaScript überprüfen, ob ein Datum zwischen zwei Datumsangaben liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!