Bonjour,
j'aimerais additionner des temps au format 00:00:00 stockés dans ma base de données.
Je les récupère. (leur nombre varie).
Je les transforme en timestamp.
J'additionne les timestamp comme si c'était des valeurs numériques quelconques.
Puis je les reconvertis en date('H:i:s').

Mais j'ai un résultat qui ne veut rien dire...

Est-ce que ma logique d'addition des temps est bonne?

Merci

7 réponses


JRcode
Réponse acceptée

Hello, effectivement il y a un probleme car tu veux additionner des durees (format 00:00:000) et les timestamp correspondent a des dates.. le plus simple serait ici de tout transformer en secondes, faire l'addition puis faire la logique inverse pour revenir au format initial.

Je témoigne l'honnêteté de madame Maurice Karine elle m'a accordé un prêt de 250.000 euros
Voici son adresse mail : mauriceannikkarine@outlook.fr
mauriceannickkarinepreteusefia@gmail.com

Hexa
Auteur

Tout transformer en secondes...
Oui, donc pas d'utilisation de timestamp?

Oui absolument, pas de timestamp ici. Si tu demandes un timestamp pour l'heure fournie il va le faire pour la date d'aujourd'hui et vu qu'un timestamp correspond au nombre de secondes ecoulees depuis le 1er janvier 1970 tu vas vite te retrouver avec des temps gigantesques 😅

Hexa
Auteur

Hé voilà, encore un bon conseil de ta part! Merci!!!
Maintenant, ça fonctionne.
Je me demande tout de même ce qu'il se passera si le total des secondes est suppérieur à 86 400 (24 heures) ...

De rien ;) si tu utilises les fonctions date de PHP il va tronquer à une journée si tu dépasses 24h et affichera le reste... Si tu as ce cas de figure il est mieux de faire la mise en forme manuellement pour avoir un nombre illimité d'heures genre 432:15:47 même si c'est pas un format usuel

Hexa
Auteur

Oui, je veux un nombre illimité d'heures.
Je vais encore une fois suivre ton conseil et additionner les heures à part.

Merci encore!