Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > De segundos a horas, minutos y segundos con PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

De segundos a horas, minutos y segundos con PHP

Tal como lo indica el titulo, me propuse realizar una función que me servio de gran utilidad durante la construcción de una aplicación Web.

¿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:

<?php
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.




Autor: Blasten
http://www.blasten.com/contenidos/De_Segundos_a_Horas,Minutos_y_Segundos.

Usuarios que han visto este tema también han visto...

- Una imagen cada día de la semana
- Proteger Descargas
- Ordenar arrays con PHP
- Cabecera y pié de página en PHP
- Nubes de etiquetas en PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 19-11-2008 a las 22:02:00