Deutsches Datum mit PHP überprüfen

Sicherlich gibt es einfachere Methoden , fertige Klassen oder ähnliches, um genau ein Datum auf Korrektheit zu prüfen.

Aber für genau das Datumsformat dd.mm.yyyy HH:ii kann man diesen Algorythmus einmal verwenden.

Beispiel Datumseingaben: 31.10.2007 17:00 oder 01.01.2008 01:03

Die Datumsvariable heißt in unserem Fall $my_date und es wird auf ein exakt gültiges Datum geprüft.

Natürlich könnte man sagen, der 31.11.2007 oder gleich dem 01.12.2007, oder 25:10 ist 01:10 am Folgetag. Das wollen wir in diesem Fall aber nicht. Wir wollen ein exakt gültiges Datum.

1. Rahmendate prüfen per regulärem Ausdruck

$arr_my_date = array();

if(empty($my_date)
|| !eregi(’([0-9]{2,2}).([0-9]{2,2}).([0-9]{4,4}) ([0-9]{2,2}):([0-9]{2,2})’, $my_date, $arr_my_date)
){ return false;}

2. unix_timestamp aus den gewonnen Daten holen

$start_timestamp = mktime($arr_start[4], $arr_start[5], 0, $arr_start[2], $arr_start[1], $arr_start[3]);

3. Das vorgegebene Datum nochmal mit dem eingegebenen Datum vergleichen (somit wird z.B. der 31.11.2007 ausgeschlossen

if(date(’d.m.Y H:i’, $start_timestamp) != $my_date){

return false;}

Jetzt könnte man noch prüfen, ob das Datum in der Vergangenheit liegt:

if($start_timestamp < time()){

return false;}

Oder das Datum in ein für mysql benutzbares Format bringen:

$mysql_date = date(’Y-m-d H:i:s’, $start_timestamp);

oder es in andere Formate bringen.

Was kannst Du jetzt tun?
Bookmarke den Artikel, wenn er Dir gefallen hat! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Webnews
  • Y!GG
  • del.icio.us
  • MisterWong
  • SEOigg
  • Technorati
  • Facebook
  • Google Bookmarks

Einen Kommentar schreiben

Ihre Daten werden niemals an Andere weiter gegeben.
Die Email-Adresse wird nicht angezeigt. Notwendige Felder sind so markiert: *

*
*