Bonjour,
Je développe une application simple de gestion des heures supplémentaires.
J'ai une table "horaires" qui recense pour chaque personne la date, l'heure supplémentaire, et l'heure récupérée.
Pour faire simple, j'ai donc 4 champs (en plus de l'id de l'utilisateur) :
J'aimerais connaître le nombre total d'heures supplémentaires et d'heures récupérées pour l'utilisateur 2.id | date | heure_supp | heure_recup
2 | 2010-09-01 | 01:00:00 | 00:00:00 (l'utilisateur 2 a eu droit à 1h supp)
2 | 2010-09-02 | 01:30:00 | 00:00:00 (l'utilisateur 2 a eu droit à 1h30 supp)
2 | 2010-09-03 | 00:00:00 | 01:00:00 (l'utilisateur 2 a récupéré 1h)
2 | 2010-09-04 | 00:30:00 | 00:00:00 (l'utilisateur 2 a eu droit à 30min supp)
2 | 2010-09-10 | 02:30:00 | 00:00:00 (l'utilisateur 2 a eu droit à 2h30 supp)
Pour cela, j'ai pensé à une simple addition des temps au format timestamp, mais je ne retombe pas sur mes pattes.
Les champs heure_supp et heure_recup sont de type TIME en base, je procède comme suite.
Ensuite, je repasse au format H:m:s la valeur finale stockée, avec la formule date('H:i:s', mktime(Heu, Min, Sec, Mois, Jour, Année)).Pour chaque heure supp récupérée dans la baseconvertir en timestamp [avec la formule date('H:i:s', mktime(Heu, Min, Sec, Mois, Jour, Année))]additionner avec le timestamp précédemment stocké au format timestampstocker la nouvelle valeurFin
Sauf que je n'obtiens pas le résultat attendu.
Voici un code test qui permet de rajouter une durée de 2h45 à une heure de début. L'heure de fin devrait être 12:45:00
J'obtiens 02:16:44 au lieu de 12:45:00<?php
$heure_debut = "10:00:00";
$hDebut = explode(":", $heure_debut);
$duree = "02:45:00";
$duration = explode(":", $duree);
$heure_fin = date('H:i:s', mktime($hDebut[0], $hDebut[1], $hDebut[2], "05", "22", "2010") + mktime($duration[0], $duration[1], $duration[2], "05", "22", "2010"));
echo "HEURE DE DEBUT : $heure_debut<br>" .
"DUREE : $duree<br>" .
"HEURE DE FIN : $heure_fin<br>";
?>
Pourriez-vous m'aider ? Merci.
Partager