malte: Date Vergleich

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!

  1. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hast Du Dir dieses Datum mal ausgeben lassen?

      Hääää? Was ist das denn?? und warum mach es das?

      1. 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.

        --
        Javascript ist toll (Perl auch!)
        1. 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

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Danke - ihr seit die Besten :D