mi sapete dire perchè questa reg exp non funziona con le date del 2000?
Codice PHP:
preg_match("/(0[1-9]|[12][0-9]|3[01])[-\.\s](0[1-9]|1[012])[-\.\s][(19|20)]\d{2}/)", $data)
se io la inserisco in un semplice codice che mi verifica la data tipo questo:
Codice PHP:
$verificaData = ControlloData("1/1/00");
var_dump($verificaData);
function ControlloData($data){
if(preg_match("/(0[1-9]|[12][0-9]|3[01])[-\.\s](0[1-9]|1[012])[-\.\s][(19|20)]\d{2}/", $data)){
echo "non sono numeri
";
return false;
}else{
echo "numeri verificati
";
$data = str_replace(" ", "-", $data);
$data = str_replace(".", "-", $data);
$data = str_replace("/", "-", $data);
$arrayData = explode("-", $data);
$Giorno = $arrayData[0];
$Mese = $arrayData[1];
$Anno = $arrayData[2];
if(!checkdate($Mese, $Giorno, $Anno)){
return false;
}else{
return true;
}
}
}
vorrei trovare una forma che mi desse la possibilità di verificare le date sia che ci siano o meno le 2 cifre per i mesi e i giorni, sia che ci siano o meno le 4 cifre per l'anno (che quindi potrebbero essere anche 3,2 o 1).
poi dovrei trovare anche una reg exp per usarla nel preg_replace per sostituire i vari
str_replace, ovvero un qualcosa che mi faccia sostituire qualsiasi carattere ci sia tra il giorno e il mese e tra il mese e l'anno, con il simbolo - (trattino)