viernes, 31 de enero de 2020

Php sumar tiempos totales

La locura del registro del horario.
Unas lineas de código para poder sumar todos los tiempos totales:


/* TOTALES HORAS MINUTOS Y SEGUNDOS DE LA CONSULTA*/

 $sh =  "SELECT * FROM $vname WHERE `din` LIKE '$fil' AND `ttot` <> 'xxx' ORDER BY $orden ";

/* CALCULAMOS LAS HORAS TOTALES Y LAS PASAMOS A SEGUNDOS. */
 if(!$sh){print(mysqli_error($db).".</br>");
 }
 else{
 $qh = mysqli_query($db, $sh);
 $qhr = mysqli_num_rows($qh);
 $sumah = 0;
 for($i=0; $i<$qhr; $i++){
 $verh = mysqli_fetch_array($qh);
 $verh = substr($verh['ttot'],0,2).",";
 $verh = str_replace(":","",$verh);
 global $sumah;
 $sumah = $sumah + $verh;
 }
 }
 $hortosec = $sumah * 3600;
 //print ("</br>".$sumah);
 //print ("</br>".$hortosec);

/* CALCULAMOS LOS MINUTOS TOTALES Y LOS PASAMOS A SEGUNDOS. */
 if(!$sh){print(mysqli_error($db).".</br>");
 }
 else{
 $qm = mysqli_query($db, $sh);
 $qmr = mysqli_num_rows($qm);
 $sumam = 0;
 for($i=0; $i<$qmr; $i++){
 $verm = mysqli_fetch_array($qm);
 $verm = substr($verm['ttot'],3,2).",";
 $verm = str_replace(":","",$verm);
 global $sumam;
 $sumam = $sumam + $verm;
 }
 }
 $mintosec = $sumam * 60;
 //print ("</br>".$sumam);
 //print ("</br>".$mintosec);

/* CALCULAMOS LOS SEGUNDOS TOTALES. */
 if(!$sh){print(mysqli_error($db).".</br>");
 }
 else{
 $qs = mysqli_query($db, $sh);
 $qsr = mysqli_num_rows($qs);
 $sumas = 0;
 for($i=0; $i<$qsr; $i++){
 $vers = mysqli_fetch_array($qs);
 $vers = substr($vers['ttot'],-2).",";
 $vers = str_replace(":","",$vers);
 global $sumas;
 $sumas = $sumas + $vers;
 }
 }
 //print ("</br>".$sumas);

/* SUMAMOS TODOS LOS SEGUNDOS. */

 global $totsec;
 $totsec = $hortosec + $mintosec + $sumas;
 //print ("</br>".$totsec);

/* PASAMOS LOS SEGUNDOS A HORAS:MINUTOS:SEGUNDOS */

$dias = floor($totsec/86400);
$horas = floor($totsec/3600);
$minutos = floor(($totsec-($horas*3600))/60);
$segundos = $totsec-($horas*3600)-($minutos*60);
global $totaltime;
$totaltime = "".$dias." Dias || ".$horas." Horas || ".$minutos." Min || ".$segundos." Segs.";
//print("</br>".$totaltime);

//////////////////////////

No hay comentarios:

Publicar un comentario

Gracias por vuestros aportes.