PHP e Mysql: calcolare la differenza tra due date.

Loading

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