Sumar tiempos dentro de un loop
Publicado por Munsen (2 intervenciones) el 24/03/2018 20:23:05
Hola. Estoy haciendo una aplicación que me guarda las actividades realizadas en una MySql con un timestamp para inicio y otro para cuando finalizan.
Con PHP muestro una tabla con las actividades, su inicio, su fin y su duración, que tomo de la MySql con
Bajo la tabla quiero poner la suma de los tiempos que duraron las actividades, las cuales están relacionadas por su tipo. Por ejemplo:
El resultado debería poder ser el anterior o '17:25:00' o incluso '45:12:00' dependiendo de las actividades y el intervalo de tiempo elegido en la consulta.
La cosa es que no tengo idea de como hacer esas sumas.:no:
Definí las variables para sumar en ellas la duración de su actividad y he probado varias formas y no queda bien.
Y en el while que hago la tabla llamo la función así:
Este fue mi último intento. Antes probé cosas como una suma directa así:
O con formatos com este:
Y no le encuentro el modo. Espero me puedan ayudar, Gracias
Con PHP muestro una tabla con las actividades, su inicio, su fin y su duración, que tomo de la MySql con
1
TIMEDIFF(COALESCE(fechatermino, NOW()), fechainicio) AS duracion
Comí 3 veces en el dia:
alimentos, '2018-03-24 07:10:00', '2018-03-24 07:30:00', '00:20:00'
estudios, '2018-03-24 07:30:00', '2018-03-24 14:00:00', '06:30:00'
alimentos, '2018-03-24 14:00:00', '2018-03-24 15:30:00', '01:30:00'
estudios, '2018-03-24 15:30:00', '2018-03-24 17:30:00', '02:00:00'
alimentos, '2018-03-24 19:30:00', '2018-03-24 20:20:00', '00:50:00'
Lo que debería darme un total para alimentos de '02:40:00'
alimentos, '2018-03-24 07:10:00', '2018-03-24 07:30:00', '00:20:00'
estudios, '2018-03-24 07:30:00', '2018-03-24 14:00:00', '06:30:00'
alimentos, '2018-03-24 14:00:00', '2018-03-24 15:30:00', '01:30:00'
estudios, '2018-03-24 15:30:00', '2018-03-24 17:30:00', '02:00:00'
alimentos, '2018-03-24 19:30:00', '2018-03-24 20:20:00', '00:50:00'
Lo que debería darme un total para alimentos de '02:40:00'
El resultado debería poder ser el anterior o '17:25:00' o incluso '45:12:00' dependiendo de las actividades y el intervalo de tiempo elegido en la consulta.
La cosa es que no tengo idea de como hacer esas sumas.:no:
Definí las variables para sumar en ellas la duración de su actividad y he probado varias formas y no queda bien.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function AddTime ($TotalTime, $TimeToAdd) {
$Total=explode(":",$TotalTime);
$ToAdd=explode(":",$TimeToAdd);
$hours=$Total[0]+$ToAdd[0];
$minutes=$Total[1]+$ToAdd[1];
if($minutes > 59){
$minutes=$minutes-60;
$hours++;
}
if($minutes < 10){
$minutes = "0".$minutes;
}
if($minutes == 0){
$minutes = "00";
}
$sum=$hours.":".$minutes;
return $sum;
}
1
2
3
4
5
6
7
8
9
switch ($registro['tipoactividad']) {
case 1:
$talimetos= AddTime($talimetos, $registro['duracion']);
break;
case 2:
$testuduando= AddTime($testuduando, $registro['duracion']);
break;
case .....
}
1
$talimetos+= $registro['duracion'];
O con formatos com este:
1
$talimetos+= date('H:i:s', strtotime($registro['duracion']));
Y no le encuentro el modo. Espero me puedan ayudar, Gracias
Valora esta pregunta


0