Bonjour tout le monde,
il me faudrait un coup de pouce pour additionner des tranches horaires.
Durant la jounée, des alertes sont mises en base de données via des boutons "début d'alerte" et "fin d'alerte".
Ensuite, je calcule l'espace de temps entre les deux.
voici mon code qui fonctionne très bien:
// affichage des temps des alertes durant la journée
$queryA = $DB->query("SELECT idEventJour, eventJourDateDebut, eventJourDateFin, eventTypeJour, dateEventJour FROM prodsuivieventsjour WHERE eventTypeJour = '20' AND dateEventJour = '".$dateJourEnCours."' ");
if ($queryA->rowCount() > 0) {
while($rowA=$queryA->fetch(PDO::FETCH_ASSOC)) {
$debutEventA = $rowA['eventJourDateDebut'];
$finEventA = $rowA['eventJourDateFin'];
if(($rowA['eventJourDateDebut'] != '2023-01-01 00:00:00') AND ($rowA['eventJourDateFin'] != '2023-01-01 00:00:00')) {
$datetime1A = new DateTime(''.$rowA['eventJourDateDebut'].''); // Date dans le passé
$datetime2A = new DateTime(''.$rowA['eventJourDateFin'].''); // Date du jour (2024-09-07 16:10:21)
$intervalA = $datetime1A->diff($datetime2A);
$dureeAlertes = $intervalA->format('%h h %I min %s s');
} else {
$dureeAlertes = '- -';
}
}
} else {
$dureeAlertes = '- -';
}
Un peu de traduction:
$eventJourDateDebut = début d'alerte
$eventJourDateFin = fin de l'alerte
$eventTypeJour = type d'alerte
$dateEventJour = jour de l'alerte
2023-01-01 00:00:00 = valeur par défaut dans mes champs DateTime de MySql
$dateJourEnCours = date('Y-m-d H:i:s')
$dureeAlertes = affichage du temps des alertes
Mais mon code ne fonctionne que sur l'alerte la plus récente de la journée. Si il y a plusieurs alertes dans la journée, les autres ne sont pas prises en compte. Donc, ma variable "$dureeAlertes" n'affiche pas le total de toutes les alertes de la journée.
Pouvez-vous me donner un coup de pouce pour additionner les temps de toutes les alertes de la journée?
Merci beaucoup!