HalloPHP

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

Antworten