Bonjour,
ptit problème lors de l'addition de 3 horaires
voici ma commande mysql :
$somme = $this->Recap->query("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(conduite))) AS conduite, SEC_TO_TIME(SUM(TIME_TO_SEC(attente))) AS attente, SEC_TO_TIME(SUM(TIME_TO_SEC(duree))) AS duree, (SEC_TO_TIME(TIME_TO_SEC(conduite)) + SEC_TO_TIME(TIME_TO_SEC(attente)) + SEC_TO_TIME(TIME_TO_SEC(duree))) AS total FROM recaps WHERE id = '$id' AND jour = '$jour'");
debug($somme);
die();
voici mon debug
/app/Controller/TrajetsController.php (line 66)
array(
(int) 0 => array(
(int) 0 => array(
'conduite' => '02:55:03',
'attente' => '00:28:03',
'duree' => '25:10:51',
'total' => '89079.000000'
)
)
)
les tps de conduite, attente et duree sont corrects, mais pas le total.
mon total n'ai jamais au format HH:mm:ss.
bon voila ce que j'ai trouvé, mais ce n'est pas optimal je pense.
si qq1 a une solution pour améliorer, je serai preneur
$sommeconduite = $this->Trajet->query("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(conduite))) as conduite FROM trajets WHERE name = '$id' AND jour = '$jour' AND supprconduite = 1 ");
$sommeattente = $this->Trajet->query("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(attente))) as attente FROM trajets WHERE name = '$id' AND jour = '$jour' AND supprattente = 1 ");
$sommeduree = $this->Trajet->query("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(duree))) as duree FROM trajets WHERE name = '$id' AND jour = '$jour' AND supprduree = 1 ");
$sommeattente1 = $sommeattente'0']'0']'attente'];
$sommeconduite1 = $sommeconduite'0']'0']'conduite'];
$sommeduree1 = $sommeduree'0']'0']'duree'];
$times = array($sommeconduite1, $sommeduree1, $sommeattente1);
$seconds = 0;
foreach ($times as $time)
{
list($hour,$minute,$second) = explode(':', $time);
$seconds += $hour*3600;
$seconds += $minute*60;
$seconds += $second;
}
$hours = floor($seconds/3600);
$seconds -= $hours*3600;
$minutes = floor($seconds/60);
$seconds -= $minutes*60;
// return "{$hours}:{$minutes}:{$seconds}";
$somme = sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds);