Kann jemand einen Vorschlag machen, wie man die Werte von zwei Daten größer als, kleiner als, und nicht in der Vergangenheit mit JavaScript? Die Werte werden aus Textfeldern stammen.
Das ist die Antwort, nach der ich gesucht habe!
Kann jemand einen Vorschlag machen, wie man die Werte von zwei Daten größer als, kleiner als, und nicht in der Vergangenheit mit JavaScript? Die Werte werden aus Textfeldern stammen.
Vergleich von Daten in JavaScript ist recht einfach... JavaScript hat eingebaut Vergleichssystem für Daten was den Vergleich so einfach macht...
Folgen Sie einfach diesen Schritten, um 2 Datumswerte zu vergleichen, z. B. haben Sie 2 Eingaben, die jeweils einen Datumswert in String
und Sie, um sie zu vergleichen...
1. Sie haben 2 String-Werte, die Sie von einer Eingabe erhalten und die Sie vergleichen möchten:
var date1 = '01/12/2018';
var date2 = '12/12/2018';
2. Sie müssen sein Date Object
als Datumswerte verglichen werden sollen, konvertieren Sie sie einfach in ein Datum, indem Sie new Date()
Ich habe sie der Einfachheit halber neu zugewiesen, aber Sie können es tun, wie Sie wollen:
date1 = new Date(date1);
date2 = new Date(date2);
3. Vergleichen Sie sie nun einfach mit der >
<
>=
<=
date1 > date2; //false
date1 < date2; //true
date1 >= date2; //false
date1 <= date2; //true
Vergleichen Sie nur den Tag (ohne die Zeitkomponente):
Date.prototype.sameDay = function(d) {
return this.getFullYear() === d.getFullYear()
&& this.getDate() === d.getDate()
&& this.getMonth() === d.getMonth();
}
Verwendung:
if(date1.sameDay(date2)) {
// highlight day on calendar or something else clever
}
Ich empfehle nicht mehr, die Änderung der prototype
von eingebauten Objekten. Versuchen Sie stattdessen dies:
function isSameDay(d1, d2) {
return d1.getFullYear() === d2.getFullYear() &&
d1.getDate() === d2.getDate() &&
d1.getMonth() === d2.getMonth();
}
console.log(isSameDay(new Date('Jan 15 2021 02:39:53 GMT-0800'), new Date('Jan 15 2021 23:39:53 GMT-0800')));
console.log(isSameDay(new Date('Jan 15 2021 10:39:53 GMT-0800'), new Date('Jan 16 2021 10:39:53 GMT-0800')));
N.B. Die Angabe von Jahr/Monat/Tag wird zurückgegeben für Ihre Zeitzone Ich empfehle die Verwendung einer zeitzonenkompatiblen Bibliothek, wenn Sie prüfen wollen, ob zwei Daten in einer anderen Zeitzone auf denselben Tag fallen.
z.B..
> (new Date('Jan 15 2021 01:39:53 Z')).getDate() // Jan 15 in UTC
14 // Returns "14" because I'm in GMT-08
Welches Format?
Wenn Sie ein Javascript konstruieren Datum Objekt können Sie sie einfach subtrahieren, um eine Millisekunden-Differenz zu erhalten (edit: oder sie einfach vergleichen):
js>t1 = new Date()
Thu Jan 29 2009 14:19:28 GMT-0500 (Eastern Standard Time)
js>t2 = new Date()
Thu Jan 29 2009 14:19:31 GMT-0500 (Eastern Standard Time)
js>t2-t1
2672
js>t3 = new Date('2009 Jan 1')
Thu Jan 01 2009 00:00:00 GMT-0500 (Eastern Standard Time)
js>t1-t3
2470768442
js>t1>t3
true
Hinweis - Nur Datumsteil vergleichen:
Wenn wir zwei Daten in Javascript vergleichen. Es nimmt Stunden, Minuten und Sekunden auch in Betracht. Also, wenn wir nur Datum nur vergleichen müssen, ist dies der Ansatz:
var date1= new Date("01/01/2014").setHours(0,0,0,0);
var date2= new Date("01/01/2014").setHours(0,0,0,0);
Jetzt: if date1.valueOf()> date2.valueOf()
funktioniert wie ein Zauberspruch.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
20 Stimmen
Wenn es um DateTime und Manipulation in JS geht, suche ich nicht weiter als momentjs :)
101 Stimmen
Keine Notwendigkeit, Momentjs zu verwenden, um 2 Daten zu vergleichen. Verwenden Sie einfach reines Javascript's Date Objekt. Prüfen Sie die Hauptantwort für weitere Details.
0 Stimmen
Sie können die folgende Antwort lesen: stackoverflow.com/questions/4812152/ Prüfen Sie getDateDifference und getDifferenceInDays, ob es helfen kann.
0 Stimmen
Ich werde Ihnen einen Grund geben, weiter als Moment.js zu schauen ( was ich liebe, ABER... ): Nicht für Schleifenlasten verwenden
0 Stimmen
Für eine nützliche Funktion um die Uhrzeit zu erfahren Differenz getrennt nach Einheiten (Sekunden, Minuten, Stunden, usw.), siehe die Antwort unter stackoverflow.com/questions/1968167/ . Diese Antwort ist jetzt auch verfügbar unter stackoverflow.com/a/46529159/3787376 .
9 Stimmen
Für diejenigen, die wie ich erst später dazugekommen sind, ist moment.js jetzt im "Wartungsmodus". d.h. nicht mehr aktiv entwickelt werden.
1 Stimmen
Für diejenigen, die noch später dazugekommen sind, ist moment.js nicht nur im Wartungsmodus, sondern auch eine riesige Bibliothek (4,21 MB!). Wenn Sie nur einfache Funktionen wie den Vergleich von zwei Daten benötigen, können Sie eine kleine (20kb) Bibliothek ausprobieren, an der ich gearbeitet habe npmjs.com/package/easy-dates