PaulY: Datum überprüfen

Hallo,

gibt es in JS eine Funktion (wie in VB isDate()) zum überprüfen von gültigen Datumsangaben. oder muss ich den String zerpflücken?

  1. Hi,

    gibt es in JS eine Funktion (wie in VB isDate()) zum überprüfen von gültigen Datumsangaben. oder muss ich den String zerpflücken?

    oder. Natürlich kannst Du new Date() stur mit dem String füttern, sofern ein gewisses Format vorgesehen ist, und einen eventuellen Fehler abfangen.

    Cheatah

    --
    X-Will-Answer-Email: No
    1. Hallo,

      oder. Natürlich kannst Du new Date() stur mit dem String füttern, sofern ein gewisses Format vorgesehen ist, und einen eventuellen Fehler abfangen.

      Das allein wird nicht viel bringen. Man kann new Date() auch ein formal ungueltiges Datum uebergeben und es wird weiter gezaehlt:

      var test=new Date(2003,0,32); // 32. Januar 2003
      alert(test);                  // ergibt den 1. Februar 2003

      Man kann aber Tag, Monat und Jahr aus dem neuen Datum mit den Werten aus dem Originaldatum vergleichen.

      MfG, Thomas

      1. Hi,

        oder. Natürlich kannst Du new Date() stur mit dem String füttern, sofern ein gewisses Format vorgesehen ist, und einen eventuellen Fehler abfangen.
        var test=new Date(2003,0,32); // 32. Januar 2003

        ich dachte eigentlich eher an einen GMT-String. Hier musstest Du ja bereits den String zerlegen, um diese Daten zu extrahieren.

        Cheatah

        --
        X-Will-Answer-Email: No
        1. Hallo,

          ich dachte eigentlich eher an einen GMT-String.

          ... den aber wohl kaum jemand eingeben wird.

          Hier musstest Du ja bereits den String zerlegen, um diese Daten zu extrahieren.

          Das wird wohl bei Eingabefeldern oder drei Auswahlfeldern [Tag|Monat|Jahr] das Mittel der Wahl sein.

          MfG, Thomas

          1. Hi,

            ich dachte eigentlich eher an einen GMT-String.
            ... den aber wohl kaum jemand eingeben wird.

            daher ja auch "sofern ein gewisses Format vorgesehen ist" ;-)

            Hier musstest Du ja bereits den String zerlegen, um diese Daten zu extrahieren.
            Das wird wohl bei Eingabefeldern oder drei Auswahlfeldern [Tag|Monat|Jahr] das Mittel der Wahl sein.

            Tja, da stimme ich Dir zu - das lässt sich mittels Dropdowns am günstigsten gestalten. Allerdings lässt die Frage den Schluss zu, dass so etwas nur bedingt zur Debatte steht.

            Cheatah

            --
            X-Will-Answer-Email: No
  2. Hallo,

    gibt es in JS eine Funktion (wie in VB isDate()) zum überprüfen von gültigen Datumsangaben. oder muss ich den String zerpflücken?

    Ja und dann am sinnvollsten mit dem date objekt weiterarbeiten.
    http://selfhtml.teamone.de/javascript/objekte/date.htm

    var check = new Date(Jahr,Monat,Tag);

    Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())

    Struppi.

    1. var check = new Date(Jahr,Monat,Tag);

      Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())

      Struppi.

      das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!

      1. var check = new Date(Jahr,Monat,Tag);

        Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())

        Struppi.

        das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!

        Hast du's probiert?

        um es kurz zu m achen, doch es sagt dir das.

        Struppi.

        1. var check = new Date(Jahr,Monat,Tag);

          Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())

          Struppi.

          das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!

          Hast du's probiert?

          um es kurz zu machen, doch es sagt dir das.

          sorry, hatte dein posting nicht richtig gelesen.
          Du musst es so machen, das du erst den String zerpflückst und dann hast du:
          day1, month1, year1

          daraus machst du mit new Date ein neues Objekt:
          date = new Date(day, month, year)

          und das vergleichst du mit der urspünglichen Eingabe:

          return (day1 == date.getDate() && month1 == date.getMonth()+1
          && year1 == date.getFullYear());

          Struppi.

        2. Hast du's probiert?

          um es kurz zu m achen, doch es sagt dir das.

          Struppi.

          Ja du hast recht aber ne feine lössung ist das nicht. Ich brauche isDate aus VB.

          1. Ja du hast recht aber ne feine lössung ist das nicht. Ich brauche isDate aus VB.

            Hier ist die Funktion eingebaut (heißt aber checkDate()), http://home.arcor.de/struebig/js/short/datum.htm

            Struppi.

      2. Hallo,

        das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!

        Eben dort liegt auch die Loesung. Neues Datum in die Komponenten zerlegen und mit dem Original vergleichen:

        var t,m,j,test;
        t=29;
        m=2;
        j=2003;

        test=new Date(j,m-1,t);
        if(test.getDate()==t && test.getMonth()+1==m && test.getFullYear()==j)alert("Datum ok");
        else alert("Datum nicht ok");

        MfG, Thomas