[PHP] Überprüfen ob eingegebenes Datum existiert



  • Hallo,
    also ich muss überprüfen ob ein eingegebenes Datum wirklich existiert
    wenn z.b. jemand 34.05.2003 eingibt, muss eine Fehlermeldung ausgegeben werden. Wie mache ich das am einfachsten und schnellsten in PHP. Mir fällt keine gute Lösung ein.
    MfG

    Tobsen



  • Naja du teilst das Datum (string? oder 3 variablen?) als erstes in die Einzelteile auf. Danach schaust du dir das Monat und vergleichst gleichzeitig den Tag - da bleibt dir wohl nichts anderess übrig als Einzelvergleich. Naja und Jahr lässt sich ja auch leicht prüfen?!

    MfG SideWinder



  • Es gibt da die PHP Funktion
    checkdate

    (siehe Doku für Einzelheiten).



  • bool checkdate(int Monat, int Tag, int Jahr)

    evtl. ist auch

    date ("M-d-Y", mktime(0,0,0,12,32,1997));

    interessant. Gibt "Jan-01-1998"



  • Hab's jetzt folgendermaßen gemacht. Meint ihr, dass das so ok geht?

    function date_exists($date)
       {
        $muster = "^[0-3][0-9]\.[0-1][0-9]\.[0-9]{4}$";            //Vorgegebenes Muster für das Datum
        if(preg_match("/$muster/",$date))                          //Untersucht formatiertes Datum nach Vorkommen des Musters
         {
          $parts = preg_split("/[.]/", $date);
    
          $day =  $parts[0]; 
          $month =$parts[1]; 
          $year = $parts[2];      
    
          if($month > 12 || $day > date("t", gmmktime(0,0,0, $month, 1, $year)))
          {
           $this->status = false;
           return "Dieses Datum existiert nicht.";
          }
         } 
        }
    


  • Nimm doch checkdate


Anmelden zum Antworten