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 */
$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;
}
$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