Date()
Wie kann ich bei zwei Objekten, bei denen eines kleiner als das andere ist, jeden Tag eine Schleife zwischen den Daten durchlaufen?
for(loopDate = startDate; loopDate < endDate; loopDate += 1)
{
}
Würde diese Art von Schleife funktionieren? Aber wie kann ich einen Tag zum Schleifenzähler hinzufügen?
Vielen Dank!
javascript
date
loops
Tom Gullen
quelle
quelle
Date.now()
beim Definierennow
?new Date()
Gibt standardmäßig das aktuelle Datum als Objekt zurück . Wenn SieDate
ohne dennew
Konstruktor aufrufen, erhalten Sie nur eine Datumszeichenfolge, die Sie dann trotzdem in ein Datumsobjekt konvertieren.new Date(2012, 0, 1);
war es gut, den falschen Tag (einen Tag zuvor)new Date(Date.UTC(2012, 0, 1))
abzuholen.Basierend auf Tom Gullens Antwort.
quelle
Date
ist ein globales Objekt developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...Wenn startDate und endDate tatsächlich Datumsobjekte sind, können Sie sie seit dem 1. Januar 1970 um Mitternacht in die Anzahl der Millisekunden konvertieren.
Dann könnten Sie eine Schleife von einer zur anderen inkrementieren und die Schleifenzeit um 86400000 (1000 * 60 * 60 * 24) erhöhen - Anzahl der Millisekunden an einem Tag:
quelle
86400000
Sekunden in einem Tag. Diese Schleife ist anfällig für Änderungen der Sommerzeit und andere Randbedingungen.Ich denke, ich habe eine noch einfachere Antwort gefunden, wenn Sie sich erlauben, Moment.js zu verwenden :
quelle
Hier hat einfacher Arbeitscode für mich funktioniert
quelle
quelle
Basierend auf Tabares Antwort musste ich am Ende noch einen Tag hinzufügen, da der Zyklus zuvor gekürzt wurde
quelle
Wenn Sie einen effizienten Weg mit Millisekunden suchen:
quelle
Nehmen wir an, Sie haben das Start- und Enddatum von der Benutzeroberfläche abgerufen und in der Bereichsvariablen im Controller gespeichert.
Deklarieren Sie dann ein Array, das bei jedem Funktionsaufruf zurückgesetzt wird, damit beim nächsten Aufruf der Funktion die neuen Daten gespeichert werden können.
var dayLabel = [];
Denken Sie daran, ein neues Datum (Ihre Startvariable ) zu verwenden, da die Funktion setDate den ursprünglichen Variablenwert in jeder Iteration ändert, wenn Sie das neue Datum nicht verwenden und es direkt der Variablen zuweisen
quelle
Basierend auf Jayarjos Antwort:
quelle