Date Vergleich
malte
- javascript
Hallo, ich überprüfe zwei Datums-Objekte und möchte, wenn das erste "von" größer ist, als das zweite "bis", dass das zweite ignoriert wird und für beide gilt, dass sie das erste Datum sind (kompliziert, aber... vielleicht im Folgenden einfacher zu verstehen):
function validateDate(minor, major){
var mindate = getFormElement(minor, "");
var maxdate = getFormElement(major, "");
//Ersetze , durch . - Das ist nötig, weil die Eingabe von Kommata ebenso ermöglicht werden soll, wie die von Punkten
mindate.value = mindate.value.replace(/,/, ".");
maxdate.value = maxdate.value.replace(/,/, ".");
var date_elements = mindate.value.split(".");
var minordate = new Date(date_elements[2], date_elements[1], date_elements[0]);
date_elements = maxdate.value.split(".");
var majordate = new Date(date_elements[2], date_elements[1], date_elements[0]);
if(minordate > majordate){
//maxwert auf minwert setzen - Dauer=> 1 Tag
maxdate.value = mindate.value;
return true;
}
return true;
}
Wenn ich jetzt folgende Beispiel durchspiele ( erstes Datum | zweites Datum | gespeichertes Datum Anfang | gespeichertes Datum Ende)
01.09.2006 | 10.08.2006 | 01.09.2006 | 01.09.2006 (OK)
10.09.2006 | 31.08.2006 | 10.09.2006 | 10.09.2006 (OK)
09.09.2006 | 31.08.2006 | 09.09.2006 | 09.09.2006 (OK)
02.09.2006 | 31.08.2006 | 02.09.2006 | 02.09.2006 (OK)
01.09.2006 | 31.08.2006 | 01.09.2006 | 31.08.2006 (FALSCH)
Woran liegt das, dass beim letzten Eintrag nicht erkannt wird, dass das Enddatum noch vor dem Startdatum liegt? Ich sehe auch kein System... es scheint explizit nur bei diesem Format vorzukommen.
Hat jemand IRGENDEINE Idee... ich habe absolut alles durchforstet... finde aber keinen Anhaltspunkt.
Herzlichen Dank!
Hi,
["31.08.2006"]
date_elements = maxdate.value.split(".");
var majordate = new Date(date_elements[2], date_elements[1], date_elements[0]);
hast Du Dir dieses Datum mal ausgeben lassen?
Cheatah
hast Du Dir dieses Datum mal ausgeben lassen?
Hääää? Was ist das denn?? und warum mach es das?
hast Du Dir dieses Datum mal ausgeben lassen?
Hääää? Was ist das denn?? und warum mach es das?
Ich vermute zwar nur, aber hast du dir mal Doku zum Date Objekt genau angeschaut?
Der Monat fängt bei null an, da es keinen 31 September (=8) gibt wird das Date Objekt wohl daraus den 1.10 machen (Vermutung)
Struppi.
Hi,
Der Monat fängt bei null an, da es keinen 31 September (=8) gibt wird das Date Objekt wohl daraus den 1.10 machen (Vermutung)
erstens das, zweitens dürfte malte in die Oktalzahlen-Falle gestolpert sein. parseInt() mit zweitem Parameter hilft.
Cheatah
Danke - ihr seit die Besten :D