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 originalfunction 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...