Wie kann ich gestern als Datum in JavaScript berechnen ?
javascript
date
Omega
quelle
quelle
getDate
der Tag des Monats zurückgegeben wird (z. B. 1 - 31),setDate(0)
das Datum jedoch tatsächlich auf den letzten Tag des Vormonats gesetzt wird. Funktioniert dies jedoch in allen Browsern?Nicht sehr effizient, aber als Oneliner:
Das Obige schafft drei
Date
Objekte, was unnötig verschwenderisch ist. Dies kann auf eine einzige Instanziierung reduziert werden mit:Oder wenn Sie es vorziehen:
Oder wenn Sie ES6 mit Pfeilfunktion bevorzugen:
quelle
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
Versuche dies
quelle
Überraschenderweise gibt es keinen Antwortpunkt auf die einfachste Cross-Browser-Lösung
Um genau die gleiche Zeit gestern zu finden:
Das ist, wenn Sie abhängigkeitsfrei gehen möchten, sonst würde ich empfehlen, http://momentjs.com zu verwenden
quelle
Um die Frage zu verallgemeinern und andere Diff-Berechnungen durchzuführen, verwenden Sie:
Dadurch wird ein neues Datumsobjekt erstellt, das auf dem Wert "now" als Ganzzahl basiert und die Unix-Epoche in Millisekunden darstellt, wobei ein Tag abgezogen wird.
Vor zwei Tagen:
Vor einer Stunde:
quelle
new Date(Date.parse(new Date()) - 86400000)
. Obwohl ich Date.now () mag, versuche ich es vielleicht stattdessen. Es wird ein zusätzliches Datum gespeichert.Ich benutze Moment Library, es ist sehr flexibel und einfach zu bedienen.
In deinem Fall:
quelle
subtract
anstelle vonadd
quelle
quelle
quelle
Dies wird gestern um 00:00 Uhr mit Minutengenauigkeit produziert
quelle
wird den Trick machen
quelle
d.setHours(-1,0,0,0)
. Dies wird das gestrige Datum zurückgeben, aber es ist möglicherweise nicht die gewünschte Zeit (23:00:00)Probieren Sie es aus, funktioniert für mich:
Dies brachte mir ein Datumsobjekt für gestern zurück
quelle
var yesterday = new Date(); yesterday.setDate(today.GetDate() - 1)
So können Sie sowohl heute als auch gestern verwendenHier ist ein Einzeiler, der verwendet wird, um das gestrige Datum im Format JJJJ-MM-TT im Text abzurufen und den Zeitzonenversatz zu verarbeiten.
Es kann offensichtlich auf das Rückgabedatum geändert werden, x Tage zurück in der Zeit. Zeit usw. einbeziehen.
quelle
Wenn Sie sowohl das Datum für gestern abrufen als auch dieses Datum in einem für Menschen lesbaren Format formatieren möchten, sollten Sie ein benutzerdefiniertes
DateHelper
Objekt erstellen , das ungefähr so aussieht:(siehe auch diese Geige )
quelle
Sie können momentjs verwenden. Es ist sehr hilfreich, mit dieser Bibliothek viele Dinge zu erreichen.
Holen Sie sich das gestrige Datum mit dem aktuellen Timing
moment().subtract(1, 'days').toString()
Holen Sie sich das Datum von gestern mit einem Beginn des Datums
moment().subtract(1, 'days').startOf('day').toString()
quelle
Problem mit dem Grenzdatum lösen (2020, 01, 01) -> 2019, 12, 31
quelle
"Date.now () - 86400000" funktioniert am Endtag der Sommerzeit (der an diesem Tag 25 Stunden hat) nicht.
Eine weitere Option ist die Verwendung von Closure:
quelle