Ich versuche zu momentjs
überprüfen, ob ein bestimmtes Datum heute oder in der Zukunft liegt.
Das habe ich bisher:
<script type="text/javascript" src="http://momentjs.com/downloads/moment.min.js"></script>
<script type="text/javascript">
var SpecialToDate = '31/01/2014'; // DD/MM/YYYY
var SpecialTo = moment(SpecialToDate, "DD/MM/YYYY");
if (moment().diff(SpecialTo) > 0) {
alert('date is today or in future');
} else {
alert('date is in the past');
}
</script>
Der Code wertet mein Datum (31. Januar 2014) als Datum in der Vergangenheit aus.
Irgendeine Idee, was ich falsch mache?
moment().diff(SpecialToDate)
gibt direkt den Unterschied in Millisekunden an.'days'
wird nicht gebraucht. Dies funktioniert für alle Szenarien. SpecialToDate kann'2018-10-26 00:00:00'
ein Beispiel sein.Sie können die
isSame
Funktion verwenden:quelle
startTime
?isSame
quelle
Da es noch niemand erwähnt zu haben scheint, ist der einfachste Weg zu überprüfen, ob ein Moment-Datumsobjekt in der Vergangenheit liegt:
Oder in der Zukunft:
Lassen Sie einfach die Argumente leer - das wird jetzt standardmäßig sein.
Es gibt auch
isSameOrAfter
undisSameOrBefore
.NB dies berücksichtigt die Zeit. Wenn Sie sich nur für den Tag interessieren , lesen Sie die Antwort von Dipendu .
quelle
momentObj
in meinem Beispiel ist eine Instanz eines Momentdatums. In den Dokumenten geht es speziell darum, eine neue Instanz (aktuelle Zeit) zu erstellen und dann in einer Anweisung zu überprüfen, ob sie in der Vergangenheit liegt. Ich schlage nicht vor, dass Sie dies tun,moment().isBefore()
was völlig sinnlos ist - warum sollten Sie prüfen, ob das Jetzt in der Vergangenheit (oder Zukunft) liegt?Sie können die
isAfter()
Abfragefunktion von momentjs verwenden:Überprüfen Sie, ob ein Moment nach einem anderen Moment liegt.
Wenn Sie die Granularität auf eine andere Einheit als Millisekunden beschränken möchten, übergeben Sie die Einheiten als zweiten Parameter.
http://momentjs.com/docs/#/query/is-after/
quelle
invert isBefore Methode des Augenblicks, um zu überprüfen, ob ein Datum wie heute oder in Zukunft wie folgt ist:
quelle
Nur für den Fall, dass jemand anderes dies benötigt, tun Sie dies einfach:
oder wenn Sie eine Funktion wünschen:
Wo Datum ist das Datum, nach dem Sie suchen möchten.
Erläuterung
moment(0, "HH")
kehrt heute um Mitternacht zurück.date1.diff(date2, "days")
Gibt die Anzahl der Tage zwischen Datum1 und Datum2 zurück.Aktualisieren
Ich habe seitdem die Funktion isSame gefunden , die meiner Meinung nach die richtige Funktion ist, um herauszufinden, ob ein Datum heute ist:
quelle
Um zu überprüfen, ob es heute ist :
Wenn wir zwei Daten vergleichen, die auch die Zeitinformationen enthalten,
isSame
schlagen diese offensichtlich fehl.diff
schlägt fehl, falls sich die beiden Daten über den neuen Tag erstrecken:Ich denke, der beste Weg, auch wenn er nicht schnell und kurz ist, ist der folgende:
Um zu überprüfen, ob es in der Zukunft liegt :
Wie auch von anderen Benutzern vorgeschlagen,
diff
funktioniert die Methode.quelle
Wenn Sie nur wissen müssen, welches größer ist, können Sie sie auch direkt vergleichen:
Hoffe das hilft!
quelle
Wenn firstDate gleich oder nach (zukünftigem) secondDate ist , wird true zurückgegeben. Andernfalls wird false zurückgegeben. Toda ist firstDate = new Date ();
Es gibt isSame, isBefore und isAfter für den Tag.
quelle
Verwenden Sie die einfachste, um das zukünftige Datum zu überprüfen
quelle
Und dann benutze es einfach so:
quelle
Wählen Sie gestern, um vergangene Tage zu überprüfen oder nicht mit Hilfe von
moment().subtract(1, "day");
Referenz: - http://momentjs.com/docs/#/manipulating/subtract/
quelle
Wenn wir einen Unterschied ohne Uhrzeit wünschen, können Sie das Datum anders (nur Datum ohne Uhrzeit) wie unten unter Verwendung des Momentformats erhalten.
Als ich dabei mit dem Unterschied konfrontiert war;
Also kam mit folgenden zu kommen;
const dateValidate = moment(moment().format('YYYY-MM-DD')).diff(moment([YOUR SELECTED DATE HERE]).format('YYYY-MM-DD'))
Bitte zögern Sie nicht zu kommentieren, wenn es etwas zu verbessern gibt.
Vielen Dank,
quelle
Ich wollte es für etwas anderes, fand aber schließlich einen Trick, den Sie versuchen können
somedate.calendar(compareDate, { sameDay: '[Today]'})=='Today'
quelle
Überprüfen Sie mit folgenden:
es kehrt in Sekunden zurück ..
Wenn wird als 2 Minuten Zustand dann überprüfen
quelle
Die einfachste Antwort lautet:
Es wird mit dem Mitternachtswert überprüft und ein genaues Ergebnis zurückgegeben. Es funktioniert auch, wenn der Zeitunterschied zwischen zwei Daten weniger als 24 Stunden beträgt.
quelle