El concepto creo que seria tomar el primer ingreso del dia, y sumarlo con el primer egreso, luego sumar el primer egreso con el segundo ingreso, luego el sengudo ingreso con el sugundo egreso y asi sucesivamente dia a dia..
Algo asi, pero como hago la suma para que me controle que no me sume las horas cuando sale.. solo las que estubo dentro..
Código PHP:
function horas($t1, $t2) {
// calcula la diferencia en horas entre dos marcas de tiempo (aaaa-mm-dd hh:mm:ss)
// t1 - marca inicial, t2 - marca final
// primero calculamos la diferencia en días
$fecha1 = explode(" ", $t1);
$fecha2 = explode(" ", $t2);
$fecha_inicial = $fecha1[0];
$fecha_final = $fecha2[0];
$s = (strtotime($fecha_final) - strtotime($fecha_inicial)) / 86400;
// ahora la diferencia en horas
$tiempo_inicial = explode(":", $fecha1[1]);
$tiempo_final = explode(":", $fecha2[1]);
$hora_final = $tiempo_final[0];
$hora_inicial = $tiempo_inicial[0];
// Se resta uno si tenemos menos de 24 horas de diferencia
if($hora_final >= $hora_inicial) {
$h = $hora_final - $hora_inicial;
} else {
$h = (24 - $hora_inicial) + $hora_final;
$s = $s - 1;
}
$t = 24 * $s + $h;
return $t;
}