Eingabe auf Datum prüfen
Reguläre Ausdrücke | letzte Änderung am 10. April '10 um 14:49 Uhr
Problemstellung
Wir möchten unsere User ein Datum, z.B. das Geburtsdatum, eingeben lassen, müssen dabei aber voraussetzen, dass ein bestimmtes Format eingehalten wird, damit wir das Datum auch als solches auswerten und weiterverarbeiten können.
Vorbereitung
Um die Datumseingabe eines Users auf ein bestimmtes Format und auf ein echtes Datum zu überprüfen, nutzen wir eine Kombination aus einem regulären Ausdruck und der Funktion checkdate().
Als Datumsformat setzen wir im Beispiel folgendes Format als valide voraus:
yyyy-mm-dd
Der fertige Ausdruck
<?php
// date input
$date = '2010-02-29';
// checks, if the date has the following format: yyyy-mm-dd
if (preg_match('/^(\d{4})-(\d{2})-(\d{2})$/', $date, $match)) {
// checks, if the input is a real date
if (checkdate($match[2], $match[3], $match[1])) {
echo 'valid';
}
else {
echo 'invalid';
}
}
else {
echo 'no chance';
}
Als Ausgabe erhalten wir:
invalid