Datum/Uhrzeit in Variable überprüfen

Dolphon

Erfahrenes Mitglied
Hallo,

ich lese z.B aus einer XML-Datei folgendes aus:
Code:
23.02.2011 15:55:00

Wie kann ich dieses Datum, welches sich in der Variable $eingabe->datum befindet daraufhin überprüfen ob es sich um ein gültiges Datum+Uhrzeit handelt.

Wenn es nur das Datum wäre, würde ich checkdate() verwenden. Aber mit der Uhrzeit bin ich überfragt. Vorallem geht es auch um die Syntax. z.B
Code:
23.0 2.2011 1x:55:00

darf nicht akzeptiert werden.


Mein Prototyp klapp tallerdings nicht:

PHP:
$date = "23.02.2011 15:55:00";
 
  if (preg_match ("/^([0-9]{2})-([0-9]{2})-([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$/", $date, $parts))
  {
    
	//bool checkdate (int $month , int $day , int $year )
        if(checkdate($parts[2],$parts[1],$parts[3]))
		{
          echo"true <br>";
		  echo $parts[2]."-".$parts[1]."-".$parts[3]."<br>";
		  echo $parts[4]."-".$parts[6]."-".$parts[6]."<br>.";
		  
        }else{
         echo "false_1";
		}
  }else{
	echo "false_2";
   }

Gruß

Dolphon
 
Zuletzt bearbeitet:
Eine einfache Prüfung kannst du mit $time = strtotime();

Einzig: strtotime akzeptiert auch dinge wie 31.2.2011

PHP:
$tests = array('03.02.2011 15:55:00',
'03.0 2.2011 15:55:00',
'31.02.2011 15:55:00');
    
foreach($tests as $test){
//  Aus dem String ein Timestamp machen
    $time = strtotime($test);
    echo "'$test' => ".(((bool) $time) ? date("d.m.y H:i:s", $time): 'ungültig')."<br />\n";
}
Ausgabe:
Code:
'03.02.2011 15:55:00' => 03.02.11 15:55:00
'03.0 2.2011 15:55:00' => ungültig
'31.02.2011 15:55:00' => 03.03.11 15:55:00
 
Zurück