Scusate:

se a qualcuno interessa:
<?php
$data="22/12/2003";
$ciccio=preg_match('/^(???:0?[13578]|1[02])(\/|-|\.)31)\1|(??:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(??:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(???:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(??:16|[2468][048]|[3579][26])00))))$|^(??:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(??:1[6-9]|[2-9]\d)?\d{2})$/' , $data);


if ($ciccio==true)echo "alleluia";
else echo " metti una data valida";

?>
La regexp prevede la data in formato mese,giorno,anno
con diversi caratteri separatori, e tiene conto degli anni bisestili.