Código PHP:
$query = ("SELECT *,UNIX_TIMESTAMP(enviado) AS fecha_unix FROM tabla ORDER BY id DESC") or die(mysql_error());
$ahora=time();
//obtener la diferencia de segundos
$segundos=$ahora-$fecha_unix;
//dias es la division de n segs entre 86400 segundos que representa un dia;
$dias=floor($segundos/86400);
//mod_hora es el sobrante, en horas, de la division de días;
$mod_hora=$segundos%86400;
//hora es la division entre el sobrante de horas y 3600 segundos que representa una hora;
$horas=floor($mod_hora/3600);
//mod_minuto es el sobrante, en minutos, de la division de horas;
$mod_minuto=$mod_hora%3600;
//minuto es la division entre el sobrante y 60 segundos que representa un minuto;
$minutos=floor($mod_minuto/60);
if ($dias > 1) $plural = "s";
else $plural = "";
if ($minutos > 1) $plural_m = "s";
else $plural_m = "";
if($horas<=0){
$final_minutos = $minutos;
$fecha = $final_minutos." minuto".$plural_m;
}elseif($dias<=0){
$final_minutos = $minutos;
$final_horas = $horas;
$fecha = $final_horas. " horas y ".$final_minutos." minuto".$plural_m;
}else{
$final_dias = $dias;
$fecha = $dias. " dia".$plural;
}
Saco la fecha "datetime" de la bd, y calculo la diferencia. Bueno pues lo hace bien parece pero falla por algun lado porque con estas dos fechas me lo hace mal:
2007-11-17 23:55:50
2007-11-17 23:53:55
Me muestra que han pasado xx minutos, cuando deberia mostrar dias :S
Con esta fecha por ejemplo lo hace bien:
2007-11-17 14:30:41
Me dice que han pasado 3 dias.
No lo entiendo... alguien ve algo raro en el script?
Gracias
