Posto questa funzione che aveva fornito ipnotic qualche tempo fa che è molto utile.

Codice PHP:
<?php 
/** 
* La funzione calcola la differenza tra due date 
* in formato UNIX TimeStamp 
* restituendo in output i giorni, le ore, i minuti e i secondi 
* di differenza (di default, restituisce i giorni) 
*/ 

function fDateDiff($dateFrom$dateTo$unit 'd'

    
$difference null
      
    
$date1 $dateFrom
    
$date2 $dateTo
      
    if( 
$date1 $date2 ){ 
        return 
null
    } 
      
    
$diff $date2 $date1
      
    
$days 0
    
$hours 0
    
$minutes 0
    
$seconds 0
      
    if (
$diff 86400 <= 0){ // Ci sono 86400 secondi in un giorno 
        
$days $diff 86400
    } 
      
    if(
$diff 86400 0){ 
        
$rest = ($diff 86400); 
        
$days = ($diff $rest) / 86400
          
        if(
$rest 3600 ){ 
            
$rest1 = ($rest 3600); 
            
$hours = ($rest $rest1) / 3600
              
            if( 
$rest1 60 ){ 
                
$rest2 = ($rest1 60); 
                
$minutes = ($rest1 $rest2) / 60
                
$seconds $rest2
            }else{ 
                
$minutes $rest1 60
            } 
        }else{ 
            
$hours $rest 3600
        } 
    } 
      
    
//In quel unità restituire 
    //la differenza ? 
    
switch(strtolower($unit)){ 
        case 
'd'
            
$partialDays 0
            
$partialDays += ($seconds 86400); 
            
$partialDays += ($minutes 1440); 
            
$partialDays += ($hours 24); 
            
$difference $days $partialDays
            break; 
              
        case 
'h'
            
$partialHours 0
            
$partialHours += ($seconds 3600); 
            
$partialHours += ($minutes 60); 
            
$difference $hours + ($days 24) + $partialHours
            break; 
              
        case 
'm'
            
$partialMinutes 0
            
$partialMinutes += ($seconds 60); 
            
$difference $minutes + ($days 1440) + ($hours 60) + $partialMinutes
            break; 
              
        case 
's'
            
$difference $seconds + ($days 86400) + ($hours 3600) + ($minutes 60); 
            break; 
              
        case 
'a'
            
$difference = array ( 
                
"days" => $days
                
"hours" => $hours
                
"minutes" => $minutes
                
"seconds" => $seconds 
                 
); 
            break; 
    } 
      
    
//Ritorno la differenza 
    
if(is_array($difference)){ 
        return 
$difference
    }else{ 
        return 
round($difference); 
    } 
      

// Esempio
echo fDateDiff(11112732001111359600$unit 'm'
?>