Heim >Web-Frontend >js-Tutorial >Wie speichere ich alle zwischen zwei angegebenen Daten vorhandenen Daten in einem Array in JavaScript?
Manchmal müssen wir alle Daten innerhalb eines bestimmten Datumsbereichs abrufen. In diesem Tutorial nehmen wir zwei Daten und ermitteln alle Daten zwischen den beiden Daten. Zusätzlich speichern wir alle Daten in einem Array.
Hier lernen wir drei Möglichkeiten kennen, alle Daten in einem Array zwischen zwei angegebenen Daten in JavaScript zu speichern.
Wir können eine While-Schleife zum Iterieren verwenden und die Methode setDate() verwenden, um das Datum im Datumsobjekt festzulegen. In jeder Iteration der while-Schleife können wir das Datum um einen Tag erhöhen und auf date1 setzen.
Benutzer können die while-Schleife und die setDate()-Methode gemäß der folgenden Syntax verwenden, um alle Daten zwischen zwei Daten abzurufen.
while (date1 <= date2) { dateArray.push(new Date(date1)); date1.setDate(date1.getDate() + 1); }
In der obigen Syntax ist Datum1 das Startdatum und Datum2 das Enddatum.
Schritt 1 – Erstellen Sie zwei Termine.
Schritt 2 – Überprüfen Sie mithilfe einer While-Schleife, ob Datum1 kleiner als Datum2 ist.
Schritt 3 – Erstellen Sie ein neues Datum aus date1 und verschieben Sie es in dateArray.
Schritt 4 – Holen Sie sich das Datum von Datum1 mit der Methode getDate() und addieren Sie 1.
Schritt 5 – Legen Sie das neue Datum mit der Methode setDate() fest.
Im folgenden Beispiel haben wir date1 und date2 mithilfe von Date-Objekten erstellt. Danach haben wir den obigen Algorithmus implementiert, um alle Daten zwischen zwei Daten abzurufen. In der Ausgabe kann der Benutzer alle Daten zwischen Datum1 und Datum2 beobachten.
<html> <body> <h2>Using the <i> setDate() method and while loop</i> to get all dates between two dates in the array format. </h2> <div id = "output"></div> <script> var output = document.getElementById('output'); var date1 = new Date("2023-01-01"); var date2 = new Date("2023-01-11"); output.innerHTML += "The date1 is " + date1 + "<br/>"; output.innerHTML += "The date2 is " + date2 + "<br/>"; var dateArray = []; while (date1 <= date2) { dateArray.push(new Date(date1)); date1.setDate(date1.getDate() + 1); } output.innerHTML += "The date array is <br/>"; for (let i = 0; i < dateArray.length; i++) { output.innerHTML += dateArray[i] + " <br/>"; } </script> </body> </html>
Bei dieser Methode erhalten wir die gesamten Millisekunden des ersten und zweiten Datums. Danach addieren wir die Millisekunden eines Tages zur Gesamtmillisekunden des aktuellen Datums und können mit den neuen Millisekunden ein Datum erstellen.
Auf diese Weise können wir alle Daten zwischen zwei angegebenen Daten finden und in einem Array speichern.
Benutzer können der folgenden Syntax folgen, um mithilfe einer for-Schleife alle Daten zwischen zwei Daten und die gesamten Millisekunden des Datums abzurufen.
for (var currentMillis = startMillis; currentMillis < lastMillis; currentMillis += milliOf1Day) { // pushing updated date to the array dateArray.push(new Date(currentMillis)); }
In der obigen Syntax ist milliOf1Day die Gesamtzahl der Millisekunden an einem Tag.
Schritt 1 – Ermitteln Sie die Gesamtzahl der Millisekunden zwischen dem aktuellen Datum und dem letzten Datum.
Schritt 2 – Verwenden Sie eine for-Schleife und initialisieren Sie die Variable currentMillis mit der Gesamtzahl der Millisekunden ab dem Startdatum.
Schritt 3 – Verwenden Sie eine for-Schleife zum Durchlaufen, bis Sie feststellen, dass die aktuellen Millisekunden kürzer sind als die Millisekunden des letzten Datums.
Schritt 4 – Fügen Sie zusätzlich 1 Tag Millisekunden zu currentMillis hinzu.
Schritt 5 – Erstellen Sie mit currentMillis ein neues Datum und verschieben Sie es in die dateArray-Variable in der for-Schleife.
In diesem Beispiel haben wir die Variable milliOf1Day, die die Gesamtzahl der Millisekunden für einen Tag speichert. Danach implementieren wir den obigen Algorithmus mithilfe einer for-Schleife und Millisekunden, um alle Daten zwischen zwei Daten abzurufen.
<html> <body> <h2>Using the <i> setDate() method and while loop </i> to get all dates between two dates in the array format. </h2> <div id = "output"></div> <script> var output = document.getElementById('output'); var firstDate = new Date("2022-11-01"); var secondDate = new Date("2022-11-07"); function getArrayOfDates(firstDate, secondDate) { // calculate milli seconds of 1 day var milliOf1Day = 24 * 60 * 60 * 1000; // calculate the total milliseconds of the start and end date let startMillis = firstDate * 1; let lastMillis = secondDate * 1; var dateArray = []; // In the for-loop, on every iteration, add the total milli seconds of 1 day to current milliseconds, and create a new date for (var currentMillis = startMillis; currentMillis < lastMillis; currentMillis += milliOf1Day) { // pushing updated date to the array dateArray.push(new Date(currentMillis)); } return dateArray; } let dates = getArrayOfDates(firstDate, secondDate) output.innerHTML += "The firstDate is " + firstDate + "<br/>"; output.innerHTML += "The secondDate is " + secondDate + "<br/>"; output.innerHTML += "The date array is <br/>"; // printing the date array for (let i = 0; i < dates.length; i++) { output.innerHTML += dates[i] + " <br/>"; } </script> </body> </html>
momentJS-Bibliothek können wir Daten manipulieren.
Benutzer können die momentJS-Bibliothek gemäß der folgenden Syntax verwenden, um alle Daten zwischen zwei Daten abzurufen.
while (currentDate.add(1, "days").diff(lastDate) < 0) { allDates.push(currentDate.clone().toDate()); }
In der obigen Syntax haben wir die Methoden add() und diff() der momentJS-Bibliothek verwendet.
Im folgenden Beispiel erhalten wir das Startdatum und das letzte Datum vom Benutzer. Danach verwenden wir das Eingabedatum und erstellen das Datum mithilfe der momentJS-Bibliothek.
Als nächstes verwenden wir die Methode add(), um einen Tag zum aktuellen Datum hinzuzufügen. Zusätzlich verwenden wir die Methode diff(), um die Differenz zwischen dem aktuellen Datum und dem letzten Datum zu ermitteln.
<html> <head> <script src ="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script> <script src = "https://cdnjs.cloudflare.com/ajax/libs/momentrange/4.0.1/moment-range.js"> </script> </head> <body> <h2>Using the <i> setDate() method and while loop </i> to get all dates between two dates in the array format. </h2> <div id="output"> </div> <button onclick="getArrayOfDates()"> Get array of Dates</button> <script> var output = document.getElementById('output'); function getArrayOfDates() { let allDates = []; let startDate = prompt("Enter start date in the MM / DD / YYYY format", "09/23/2022"); let endDate = prompt("Enter end date in the MM / DD / YYYY format ", "10/23/2022"); // create a new date from the custom input let currentDate = moment.utc(new Date(startDate)).startOf("day"); let lastDate = moment.utc(new Date(endDate)).startOf("day"); // add one day to the current date and check the difference between the current date and the last date while (currentDate.add(1, "days").diff(lastDate) < 0) { allDates.push(currentDate.clone().toDate()); } allDates.push(currentDate.clone().toDate()); output.innerHTML += "The currentDate is " + currentDate + "<br/>"; output.innerHTML += "The lastDate is " + lastDate + "<br/>"; output.innerHTML += "The date array is <br/>"; for (let i = 0; i < allDates.length; i++) { output.innerHTML += allDates[i] + " <br/>"; } } </script> </body> </html>
Das obige ist der detaillierte Inhalt vonWie speichere ich alle zwischen zwei angegebenen Daten vorhandenen Daten in einem Array in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!