Calcolo della differenza tra due date in PHP



Come calcolare la differenza tra due date, due orari, ecc…
Volendo automatizzare la procedura, ho creato questa funzione in PHP che restituisce la differenza tra due date impostate.

le variabili della funzione, sono 3:
$data_iniziale: ovvero la data dalla quale si vuole partire a fare il conteggio. Il campo deve essere formattato come: “aaaa-mm-gg hh:mm:ss” (ovverto il timestamp) oppure come “aaaa-mm-gg” (ovvero il formato date).


$data_finale: ovvero la data termine del conteggio. Il campo deve essere formattato come: “aaaa-mm-gg hh:mm:ss” (ovverto il timestamp) oppure come “aaaa-mm-gg” (ovvero il formato date).
 

$unita: accetta una variabile (minuscola) composta da un carattere:
m: se la funzione deve riportare i minuti trascorsi tra le due date;
h: se la funzione deve riportare le ore trascorse tra le due date;
g: se la funzione deve riportare i giorni trascorsi tra le due date;
a: se la funzione deve riportare gli anni trascorsi tra le due date.

La funzione da scrivere nella pagina php è la seguente:

1.  <?php
2.   
3.  function delta_tempo ($data_iniziale,$data_finale,$unita) {
4.   
5.   $data1 = strtotime($data_iniziale);
6.   $data2 = strtotime($data_finale);
7.   
8.    switch($unita) {
9.           case "m": $unita = 1/60; break;       //MINUTI
10.         case "h": $unita = 1; break;          //ORE
11.         case "g": $unita = 24; break;         //GIORNI
12.         case "a": $unita = 8760; break;         //ANNI
13.  }
14. 
15. $differenza = (($data2-$data1)/3600)/$unita;
16. return $differenza;
17.}
18.?>
Se volessimo cercare la differenza, in anni, tra il 22 settembre 1981 e oggi (03 aprile 2014), la nostra funzione andrebbe richiamata in questo modo:
1.  <?php
2.     echo delta_tempo("1981-09-22", "2014-04-03", "a");
3.  ?>
- See more at: http://www.lucamaresca.it/calcolo-della-differenza-tra-due-date-in-php/#sthash.pjp65p4o.dpuf

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)