Foros del Web » Programando para Internet » PHP »

¿ Sumar horas con formato hhhh:mm:ss ?

Estas en el tema de ¿ Sumar horas con formato hhhh:mm:ss ? en el foro de PHP en Foros del Web. Hola! Estoy diseñando una aplicación web con php y por una necesidades específicas necesitaria sumar horas. El tema está en que cada vez que el ...
  #1 (permalink)  
Antiguo 16/11/2010, 16:41
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años, 1 mes
Puntos: 18
¿ Sumar horas con formato hhhh:mm:ss ?

Hola!

Estoy diseñando una aplicación web con php y por una necesidades específicas necesitaria sumar horas.
El tema está en que cada vez que el usuario se conecte a la aplicación y abra sesión, una vez cierre, se sumará el tiempo que ha estado en sesión sobre anteriores tiempos de la BD, por ejemplo:

$tiempo_acumulado = 240:50:40 (240 horas, 50 minutos, 40 segundos)
$tiempo_sesion_actual = 01:40:20
$total_tiempo = $tiempo_acumulado + $tiempo_sesion_actual

o por ejemplo:

$tiempo_acumulado = 5500:30:20 (5500 horas, 30 minutos, 20 segundos)
$tiempo_sesion_actual = 01:40:20
$total_tiempo = $tiempo_acumulado + $tiempo_sesion_actual


Gracias de antemano!!!!
  #2 (permalink)  
Antiguo 18/11/2010, 15:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 1
Respuesta: ¿ Sumar horas con formato hhhh:mm:ss ?

Es mejor que las trabajes en segundos.
Puedes guardar, por cada sesion, los segundos en la base de datos y
dinamicamente generar el tiempo total con la sumatoria de las sesiones

Código PHP:
<?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 */
        
$resultadoround($segundos).' Segundos';
    }
    elseif(
$segundos>60 && $segundos<3600)
    {    
/* minutos */
        
$resultado$minutos2.':'.$segundos_2.' Minutos';
    }
    else
    {    
/* horas */
        
$resultado$horas.':'.$minutos2.':'.$segundos_2.' Horas';
    }
    return 
$resultado;
}

$horaEntrada "10:30 am";
$horaSalida "2:00 pm";
$tiempo = (strtotime($horaSalida)-strtotime($horaEntrada));
echo 
"Segundos: $tiempo<br>";
echo 
"Total de tiempo: ".segundos_tiempo($tiempo)."<br>";

echo 
"<br>";
$horaEntrada "2010/11/08 1:10 pm";
$horaSalida "2010/11/18 2:00:40 pm";
$tiempo = (strtotime($horaSalida)-strtotime($horaEntrada));
//puedes directamente asignar el tiempo total sumando los tiempos de cada sesion
//$tiempo = [xxx segundos];
echo "Segundos: $tiempo<br>";
echo 
"Total de tiempo: ".segundos_tiempo($tiempo)."<br>";

?>
Resultado:
Cita:
Segundos: 12600
Total de tiempo: 3:30:00 Horas

Segundos: 867040
Total de tiempo: 240:50:40 Horas
  #3 (permalink)  
Antiguo 19/11/2010, 02:32
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años, 1 mes
Puntos: 18
Respuesta: ¿ Sumar horas con formato hhhh:mm:ss ?

Gracias tomo nota!
  #4 (permalink)  
Antiguo 19/11/2010, 07:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: ¿ Sumar horas con formato hhhh:mm:ss ?

Con la clase Datetime() se te haría todo mas fácil.

http://www.php.net/manual/es/class.datetime.php

Etiquetas: formato, horas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:58.