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.