Ho provato ad usare questa funzione:
Codice PHP:
function differenza($ora1, $ora2, $sep){
$part = explode($sep, $ora1);
$arr = explode($sep, $ora2);
$diff= mktime($arr[0], $arr[1], $arr[2]) - mktime($part[0], $part[1], $part[2]);
$ore=floor($diff / (60*60));
$minuti=($diff / 60) % 60;
$secondi = ($diff - ($minuti * 60) - ($ore * 60 *60));
$ore = str_pad($ore,2,0,STR_PAD_LEFT);
$minuti = str_pad($minuti,2,0,STR_PAD_LEFT);
$secondi = str_pad($secondi,2,0,STR_PAD_LEFT);
$risultato = $ore.":".$minuti.":".$secondi;
return $risultato;
}
La funzione la richiamo in questa maniera:
Se ho le sole ore è tutto semplice:
Codice PHP:
$ora1="08:35";
$ora2="11:50";
$differenza=differenza($ora1,$ora2,":");
echo "Tempo tra le due date: " . $differenza . "
\n";
Altrimenti, e questo è il nostro caso, prima troviamo le 2 ore e poi andiamo alla funzione:
Codice PHP:
$data_fine_en = '2012-04-29 22:41:16';
$data_inizio_en = '2012-04-29 22:28:17';
$data_fine_timestamp = strtotime($data_fine_en);
$data_inizio_timestamp = strtotime($data_inizio_en);
$start = date('H:i:s',$data_inizio_timestamp);
$end = date('H:i:s',$data_fine_timestamp);
$differenza=differenza($start,$end,":");
echo "Tempo tra le due date: " . $differenza . "
\n";
Come separatore ho usato i due punti ( : ) perchè qui ed in molti casi vengono usati questi come separatori.