Codice PHP:
$data "2004/02-30";

function 
valida($stringa){
if (!
preg_match("#^\d{4}-\d{2}-\d{2}$#",$stringa))
return 
'La data deve essere inserita nel formato AAAA-MM-GG';
else {
list(
$anno,$mese,$giorno) = explode('-',$stringa);
if (!
checkdate($mese,$giorno,$anno)) return 'La data inserita non esiste';
}
return 
$stringa;
}

$data valida($data);
echo 
$data
edit. occhio che il forum si mangia i \ prima delle d. quota il messaggio per averlo scritto correttamente.