Skip to content

Instantly share code, notes, and snippets.

@s00rk
Last active December 19, 2015 05:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s00rk/5906706 to your computer and use it in GitHub Desktop.
Save s00rk/5906706 to your computer and use it in GitHub Desktop.
<?php
function tiempoTranscurrido($val)
{
if(is_numeric($val)) // Si le enviamos un timestamp(milisegundos) desde 1970
{
$fecha = new DateTime();
$fecha->setTimestamp($val);
}else if(get_class($val) == 'DateTime'){ // Un objeto DateTime
$fecha = $val;
}else{
$fecha = new DateTime($val); // Un String
}
// Obtenemos la diferencia y nos retorna un DateInterval
$interval = $fecha->diff( new DateTime() );
if($interval->y > 0)
{
$mes = array( 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' );
if($interval->d != 0 && $interval->m != 0)
return 'el ' . $fecha->format('d') . ' de ' . $mes[ $fecha->format('n')-1 ] . ' del ' . $fecha->format('Y');
return 'hace ' . $interval->y . ' a&ntilde;o' . ($interval->y > 1 ? 's' : '');
}else if($interval->m > 0)
{
return 'hace ' . $interval->m . ' mes' . ($interval->m > 1 ? 'es' : '');
}else if($interval->d > 0)
{
$semana = $interval->d/7;
if($semana == round($semana))
return 'hace ' . $semana . ' semana' . ($semana > 1 ? 's' : '');
else if($interval->d == 1)
return 'ayer';
else if($interval->d == 2)
return 'antier';
return 'hace ' . $interval->d . ' d&iacute;a' . ($interval->d > 1 ? 's' : '');
}else if($interval->h > 0)
{
return 'hace ' . $interval->h . ' hora' . ($interval->h > 1 ? 's' : '');
}else if($interval->i > 0)
{
return 'hace ' . $interval->i . ' minuto' . ($interval->i > 1 ? 's' : '');
}else if($interval->s > 0)
{
return 'hace ' . $interval->s . ' segundo' . ($interval->s > 1 ? 's' : '');
}else{
return 'ahora';
}
}
$tiempo = time(); // Hora Actual en Timestamp
echo tiempoTranscurrido( $tiempo )."<br />";
$tiempo = new DateTime('01-03-2013'); // Mi Cumpleaños xD
echo tiempoTranscurrido( $tiempo );
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment