In questo articolo avevamo già visto come è possibile calcolare la differenza tra due date, e avevamo visto come tramite una serie di trucchetti riuscivamo a tornare la differenza espressa in giorni.
Ora vogliamo usare un altro “trucco”, ossia vogliamo sfruttare la funzione DATEDIFF() del MySql.
Per questo ci basta produrre una query del tipo:
SELECT DATEDIFF(‘2010-11-30′,’2010-12-31’);
La cosa a cui dobbiamo prestare attenzione è il formato della data gradito a MySql, ossia aaaa-mm-gg, quindi quello che dobbiamo fare è trasformare la data e creare la query.
Faremo tutto in una funzione MySqlDate(), che prenderà come parametri due date nel fromato gg/mm/anno:
function MySqlDate($d1,$d2){
$arrD1 = split(‘/’,$d1);
$arrD2 = split(‘/’,$d2);
// "giro" la prima data
$d1 = $arrD1[2]."-".$arrD1[1]."-".$arrD1[0]);
// "giro" la seconda data
$d2 = $arrD2[2]."-".$arrD2[1]."-".$arrD2[0]);
// costruisco la query
$query = "SELECT DATEDIFF('2010-11-30','2010-12-31') AS dayDiff;";
if($resQ && mysql_num_rows($resQ)==1){
$row = mysql_fetch_assoc($resQ);
return $row['dayDiff'];
} else {
die("errore database");
}
}
Nello sviluppo della funzione abbiamo supposto di essere già connessi a server MySql