Ich muss herausfinden, ob zwei Daten, die der Benutzer auswählt, in Javascript gleich sind. Die Daten werden in einem String ("xx / xx / xxxx") an diese Funktion übergeben. Das ist die Granularität, die ich brauche.
Hier ist mein Code:
var valid = true;
var d1 = new Date($('#datein').val());
var d2 = new Date($('#dateout').val());
alert(d1+"\n"+d2);
if(d1 > d2) {
alert("Your check out date must be after your check in date.");
valid = false;
} else if(d1 == d2) {
alert("You cannot check out on the same day you check in.");
valid = false;
}
Die Javascript-Warnung nach dem Konvertieren der Daten in Objekte sieht folgendermaßen aus:
Di 25.01.2011 00:00:00 GMT-0800 (pazifische Standardzeit)
Di 25.01.2011 00:00:00 GMT-0800 (pazifische Standardzeit)
Der Test, um festzustellen, ob Datum 1 größer als Datum 2 ist, funktioniert. Bei Verwendung der Operatoren == oder === wird die Gültigkeit jedoch nicht in false geändert.
javascript
date
equality
Erschüttert
quelle
quelle
Antworten:
Verwenden Sie die
getTime()
Methode. Es überprüft den numerischen Wert des Datums und funktioniert sowohl für die Prüfungen größer als / kleiner als auch für die Prüfungen gleich.BEARBEITEN:
if (d1.getTime() === d2.getTime())
quelle
if( +d1 == +d2 )
Wenn Sie nicht anrufen möchten,
getTime()
versuchen Sie einfach Folgendes:(a >= b && a <= b)
quelle
var a = new Date(); var b = new Date();
) erstellen , sind diese niemals gleich.var a ="str1"; var b = "str"+"1"; a == b // true
var d1 = new Date($('#datein').val()); var d2 = new Date($('#dateout').val());
Verwenden Sie zwei einfache Methoden, um die Gleichheit zu überprüfen
if( d1.toString() === d2.toString())
if( +d1 === +d2)
quelle