<?php
//Transforma hora para decimal 
function t2d($time){ 
    $separar=explode(':',$time); 	
    $decimal = ($separar[0]*3600) + ($separar[1]*60) + $separar[2]; 
    return($decimal);	
}	

//Transforma decimal para hora 
function d2t($time){			
    if(is_numeric($time)){
    $value = array(
        "anos" => 0,
        "dias" => 0,
        "horas" => 0,
        "minutos" => 0,
        "segundos" => 0,
    );
    
    if($time >= 31556926){
        $value["anos"] = floor($time/31556926);
        $time = ($time%31556926);
    }
    
    if($time >= 86400){
        $value["dias"] = floor($time/86400);
        $time = ($time%86400);
    }
    
    if($time >= 3600){
        $value["horas"] = floor($time/3600);
        $time = ($time%3600);
    }
    if($time >= 60){
        $value["minutos"] = floor($time/60);
        $time = ($time%60);
    }
    
    $value["segundos"] = floor($time);
        return (array) $value;
    }else{
        return (bool) FALSE;
    } 
}

/*
exemplo de Uso:
$tempo = d2t(t2d("12:00") - t2d("11:30"));
print_r $tempo;
retorna ==> Array
(
    [anos] => 0
    [dias] => 0
    [horas] => 0
    [minutos] => 30
    [segundos] => 0
)

*/
?>