WINTXCODERS

Desarrollo => Desarrollo web y diseño => Mensaje iniciado por: Pablo Velasco en Marzo 09, 2017, 03:17:22 PM

Título: Tiempo transcurrido entre una fecha.
Publicado por: Pablo Velasco en Marzo 09, 2017, 03:17:22 PM
Bueno os lo dejo aquí por si alguien le sirviera.


<?php 
          
function time_elapsed($fecha) {
if(empty($fecha)) {
  return "No hay fecha";
}
   
$intervalos = array("segundo", "minuto", "hora", "día", "semana", "mes", "año");
$duraciones = array("60","60","24","7","4.35","12");
   
$ahora = time();
$Fecha_Unix = strtotime($fecha);

if(empty($Fecha_Unix)) {   
  return "Fecha incorrecta";
}
if($ahora > $Fecha_Unix) {   
  $diferencia = $ahora - $Fecha_Unix;
  $tiempo = "Hace";
} else {
  $diferencia = $Fecha_Unix - $ahora;
  $tiempo  = "Dentro de";
}
for($j = 0; $diferencia >= $duraciones[$j] && $j < count($duraciones) - 1; $j++) {
       $diferencia /= $duraciones[$j];
}
   
$diferencia = round($diferencia);

if($diferencia != 1) {
$intervalos[5] .= "e";
$intervalos[$j] .= "s";
}
   
return "$tiempo $diferencia $intervalos[$j]";
}
?>



La fecha tiene que estar ordenada de la siguiente forma:


<?php
date
("Y-m-d H:i:s");
?>



Quedaría así: 2017-03-09 15:16:22
Cualquier duda preguntar.