viernes, 12 de agosto de 2016

De Segundos a Horas, Minutos y Segundos en PHP

¿Como llevar de segundos a Horas ( si las hay ), Minutos ( si los hay ) y Segundos.
Por ejemplo si tengo 28240 Segundos, como hacer que imprima: 7:50:40 Horas
El proceso es sin duda sencillo, veamos el código y luego la explicación:
Código Fuente:
<?
function segundos_tiempo($segundos){
$minutos=$segundos/60;
$horas=floor($minutos/60);
$minutos2=$minutos%60;
$segundos_2=$segundos%60%60%60;
if($minutos2<10)$minutos2=’0′.$minutos2;
if($segundos_2<10)$segundos_2=’0′.$segundos_2;
if($segundos<60){ /* segundos */
$resultado= round($segundos).’ Segundos’;
}elseif($segundos>60 && $segundos<3600){/* minutos */
$resultado= $minutos2.’:’.$segundos_2.’ Minutos’;
}else{/* horas */
$resultado= $horas.’:’.$minutos2.’:’.$segundos_2.’ Horas’;
}
return $resultado;
}
$segundos=date(‘h’)*60*60+(date(‘i’)*60)+date(‘s’);
echo ‘Segundos: ‘.$segundos.’ Resultado: ‘.segundos_tiempo($segundos);
?>
Explicando:
Definimos una función con el nombre de segundos_tiempo(ARG1), donde el ARG1 es el valor que indicamos ( segundos) cuando llamamos la función.
Realizaremos una serie de operaciones aritméticas, para luego condicionar el resultado.
$Minutos, tal como se ve; sera igual a la división entre $segundo y 60.
Ejemplo: 120 segundos / 60 es igual a 2 minutos.
$horas es igual a la división de $minutos entre 60 , y lo redondeamos hacia abajo con la función matemática floor()
$minutos2 será igual al residuo (resto) devuelto por la división entre $minutos y 60.
Y $segundos_2 el residuo de la división entre $segundos, 60, 60, 60 sucesivamente.
Que no son más que los datos acumulados en los procesos anteriores.
Luego iniciamos una condición para verificar si el número es menor a 10 y colocarle un 0 (cero) al comienzo: Por ejemplo 9 => 09 , el proceso lo repetimos con los segundos y minutos, con la horas seria innecesario.
Creamos otra condición para indicar si se ha definido Horas, minutos ó segundos y retornar el formato y estilo correcto.
Si $segundos es menor que 60 (entonces solo hay segundos)
if($segundos<60)
De lo contrario si $segundos es menor que 60 y es menor que 3600 (Se han definido minutos y segundos)
elseif($segundos>60 && $segundos<3600)
De lo contrario a todas estas (se ha definido horas, minutos y segundos)
else
Finalmente retornamos el resultado
return $resultado;
Y aplicamos la función, con los segundos actuales del servidor para verificar que nos devuelve la hora exacta.

Sobre el Autor

hocielo

Autor & Editor

SI SABES BUSCAR EN INTERNET ENCUENTRAS. UNA PALABRA CLAVE DETERMINA TU BUSQUEDA

Publicar un comentario

 
CodigoGuaro © 2016 - Designed by Templateism.com Rediseñado CreativosMontero