2791 Stimmen

Zwei Daten mit JavaScript vergleichen

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.

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.

87voto

Alireza Punkte 92209

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

compare dates in javascript

58voto

mpen Punkte 253762

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

44voto

Jason S Punkte 178087

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

26voto

Sanjeev Singh Punkte 3800

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.

1 Stimmen

Das ist die Antwort, nach der ich gesucht habe!

24voto

MICHAEL PRABHU Punkte 389

Der einfache Weg ist,

var first = '2012-11-21';
var second = '2012-11-03';

if (new Date(first) > new Date(second) {
    .....
}

0 Stimmen

Dies funktioniert nicht bei == noch ===

CodeJaeger.com

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.

Powered by:

X