Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/11/2010, 15:21
legion6000
 
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