suit: Datum Überprüfen auf ECHTHEIT

Beitrag lesen

@@suit:

nuqneH

Nunja, man kann ja einen Regulären Ausdruck für die Findung der Bestandteile verwenden und diese dann mit checkdate() prüfen.

Ein einfacher \d{4}-\d{1,2}-\d{1,2} scheitert bereits, weil es ein Datum wie z.B. 2011-13-13 nicht gibt.

„[…] und diese [Bestandteile] dann mit checkdate() prüfen.“

Ja, aber damit kommt eben Mist zustande wenn dann ein 2001-0101 daherkommt - was bei der dafür gedachten Funktion schon abgefangen wird und einwandfrei hinhaut:

<?php  
	$foo = array(  
		'2011-01-02',  
		'2011-1-2',  
		'2011c1-2'  
	);  
  
	function bar($str) {  
		if(!$out = strptime ($str , '%Y-%m-%d')) {  
			echo "$str: fail\n";  
		} else {  
			echo "$str: \n";  
			print_r($out);  
			  
		}  
	}  
  
	echo '<pre>';  
	bar($foo[0]);  
	bar($foo[1]);  
	bar($foo[2]);  
?>