[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.
MfGTobsen
-
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