Pues si que funciona bien la funcion... al hacerla rapido y despues de tanto estar con fechas ya no veia con claridad los resultados en las pruebas... pero ahora sin estar todo el dia en el ordenador, he hecho tests y parece que si que va bien...
 
 echo date("d/m/Y H:i:s",desfase($fechaComent, $desfaseUsuario));
Te da la fecha exacta del post del comentario... para saber cuantos minutos hace, yo uso esta funcion:    
Código PHP:
Ver original- function haceCuanto($fecha, $fecha_final){ 
- //$lenguaje=$_SESSION['LANGUAGE']; 
- //include(includeFile($lenguaje.'.php')); 
-   
-             'segundo' => 'segundo', 
-             'segundos' => 'segundos', 
-             'minutos' => 'minutos', 
-             'minuto' => 'minuto', 
-             'hora' => 'hora', 
-             'horas' => 'horas', 
-             'aproximadamente' => 'aproximádamente', 
-             'dias' => 'días', 
-             'dia' => 'dia', 
-             'ano' => 'año', 
-             'anos' => 'años', 
-             'mes' => 'mes', 
-             'meses' => 'meses', 
-             ); 
-   
-     // Función creada por Iván Ibarra [www.famezstudios.com]  
-   
-     $fecha = $fecha - $_SESSION['WP']['TIMEZONE']; 
-     $fecha_final = $fecha_final - $_SESSION['WP']['TIMEZONE']; 
-      
-      
-      
-     $tiempo = $fecha_final-$fecha; 
-   
-      
-      if(round($tiempo / 31536000) <= 0){  
-         if(round($tiempo / 2678400) <= 0){  
-              if(round($tiempo / 86400) <= 0){  
-                  if(round($tiempo / 3600) <= 0){  
-                     if(round($tiempo / 60) <= 0){  
-                         if($tiempo <= 60){  
-                         $can = $tiempo; 
-                         if($can == 1) {    $word = $lang['segundo']." "; } else {    $word = $lang['segundos']." "; }  
-                         $hace = " " .$tiempo. " ".$word." ";  
-                         }  
-                     } else {  
-                         $can = round($tiempo / 60);  
-                         if($can <= 1) {    $word = $lang['minuto']." "; } else {    $word = $lang['minutos']." "; }  
-                         $hace = " " .$can. " ".$word." ";   
-                     }  
-                 } else {  
-                     $can = round($tiempo / 3600);  
-                     if($can <= 1) {    $word = $lang['hora']." "; } else {    $word = $lang['horas']." "; }  
-                     $hace = " ".$lang['aproximadamente']." " .$can. " ".$word;  
-                 }  
-             } else {  
-                 $can = round($tiempo / 86400);  
-                 if($can <= 1) {    $word = $lang['dia']." "; } else {    $word = $lang['dias']." "; }  
-                 $hace = "  ".$lang['aproximadamente']." " .$can. " ".$word." ";  
-             }  
-         } else {  
-             $can = round($tiempo / 2678400);   
-             if($can <= 1) {    $word = $lang['mes']." "; } else { $word = $lang['meses']." "; }  
-             $hace = "  ".$lang['aproximadamente']." " .$can. " ".$word;  
-         }  
-     } else {  
-         $can = round($tiempo / 31536000);  
-         if($can <= 1) {    $word = $lang['ano']." ";} else { $word = $lang['anos']." "; }  
-         $hace = "  ".$lang['aproximadamente']." " .$can. " ".$word;  
-     }  
-     // Mensaje  
-     return $hace;  
- } 
Solo hay que restarle el desfase a ambas fechas y te saca cuantos minutos, segundos y horas...