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!