[PHP] Convertir segundos en una cadena de tiempo

[PHP] Convertir segundos en una cadena de tiempo

Me hizo falta hace poco, son de estas cosas que haces una vez y puedes usarla 3 veces a lo largo de tu vida. Los comúnmente conocidos como desarrollos no rentables. En este caso sí lo fue, y como podéis ver por el código no perdí más de 20 minutos en elaborarlo.

Es posible que se os dé el caso y queráis ahorrar vuestro precioso tiempo. Si lo que queréis es simplemente convertir unos segundos en un timestamp en PHP os bastará con crearos en vuestro fichero de funciones:

<?php
function segundosToCadena($segs){
$cadena = ”;
if($segs >= 86400) {
$dias = floor($segs/86400);
$segs = $segs%86400;
$cadena = $dias.’ día’;
if($dias != 1) $cadena .= ‘s’;
if($segs >= 0) $cadena .= ‘, ‘;
}
if($segs>=3600){
$horas = floor($segs/3600);
$segs = $segs%3600;
$cadena .= $horas.’ hora’;
if($horas != 1) $cadena .= ‘s’;
if($segs >= 0) $cadena .= ‘, ‘;
}
if($segs>=60){
$minutes = floor($segs/60);
$segs = $segs%60;
$cadena .= $minutes.’ minuto’;
if($minutes != 1) $cadena .= ‘s’;
if($segs >= 0) $cadena .= ‘, ‘;
}
$cadena .= $segs.’ segundo’;
if($segs != 1) $cadena .= ‘s’;
return $cadena;
}

echo segundosToCadena(6284629).”<br/>”;
echo segundosToCadena(3600).”<br/>”;
echo segundosToCadena(3601).”<br/>”;

?>

En este caso si lo lanzáis directamente tendréis la siguiente salida:

72 días, 17 horas, 43 minutos, 49 segundos
1 hora, 0 segundos
1 hora, 1 segundo

¿Te gustó?