Php addition heure
Résolu/Fermé
JypX
Messages postés
67
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
6 février 2010
-
6 janv. 2010 à 22:05
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 12 oct. 2012 à 13:18
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 12 oct. 2012 à 13:18
Bonjour,
Je cherche bêtement à additionner des heures au format 12:04:43.
12:04:43 + 14:57:07 = 27:01:50 ou 1jour 3:01:50 (je préfère le 27heures:))
J'ai trouvé que des trucs compliqués pour faire une simple addition....
Je cherche bêtement à additionner des heures au format 12:04:43.
12:04:43 + 14:57:07 = 27:01:50 ou 1jour 3:01:50 (je préfère le 27heures:))
J'ai trouvé que des trucs compliqués pour faire une simple addition....
9 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
7 janv. 2010 à 10:10
7 janv. 2010 à 10:10
Une fonction native php pour ton cas particulier je n'ai pas trouvé, mais je t'en ai concocté une petite toute chaude:
<?php function add_heures($heure1,$heure2){ $secondes1=heure_to_secondes($heure1); $secondes2=heure_to_secondes($heure2); $somme=$secondes1+$secondes2; //transfo en h:i:s $s=$somme % 60; //reste de la division en minutes => secondes $m1=($somme-$s) / 60; //minutes totales $m=$m1 % 60;//reste de la division en heures => minutes $h=($m1-$m) / 60; //heures $resultat=$h."H ".$m."mn ".$s."s"; return $resultat; } function heure_to_secondes($heure){ $array_heure=explode(":",$heure); $secondes=3600*$array_heure[0]+60*$array_heure[1]+$array_heure[2]; return $secondes; } $heure_1='12:04:43'; $heure_2='14:57:07'; echo 'La somme de '.$heure_1.' et de '.$heure_2.' est: '.add_heures($heure_1,$heure_2); ?>
JypX
Messages postés
67
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
6 février 2010
7
7 janv. 2010 à 19:36
7 janv. 2010 à 19:36
Un grand merci pour ton aide j'ai personnalisé les 2 fonctions
Une pour transformer la durée en seconde et l'autre pour l'inverse (je fais l'addition entre les 2 fonctions car j'ai plus de 2 valeurs)
Encore merci!!!
Une pour transformer la durée en seconde et l'autre pour l'inverse (je fais l'addition entre les 2 fonctions car j'ai plus de 2 valeurs)
Encore merci!!!
function secondes_to_duree($secondes){ $s=$secondes % 60; //reste de la division en minutes => secondes $m1=($secondes-$s) / 60; //minutes totales $m=$m1 % 60;//reste de la division en heures => minutes $h=($m1-$m) / 60; //heures $resultat=$h.":".$m.":".$s; return $resultat; } function duree_to_secondes($duree){ $array_duree=explode(":",$duree); $secondes=3600*$array_duree[0]+60*$array_duree[1]+$array_duree[2]; return $secondes; }
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
7 janv. 2010 à 10:40
7 janv. 2010 à 10:40
oui mais en passant par le timestamp et la fonction date ça va donner les heures au format 24h maxi
au dela ça va mettre des jours, hors il veut 27 h par exemple
au dela ça va mettre des jours, hors il veut 27 h par exemple
il y a plus simple avec l'utilisation de mktime
$heure1 = "12:04:43";
$heure2 = "12:04:43";
$h1 = explode(":", $heure1);
$h2 = explode(":", $heure2);
$h1_h2_addtition =
date('H-i-s', mktime($h1[0]+$h2[0],$h1[1]+$h2[1],$h1[2]+$h2[2],1,1,2012))
$heure1 = "12:04:43";
$heure2 = "12:04:43";
$h1 = explode(":", $heure1);
$h2 = explode(":", $heure2);
$h1_h2_addtition =
date('H-i-s', mktime($h1[0]+$h2[0],$h1[1]+$h2[1],$h1[2]+$h2[2],1,1,2012))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 janv. 2010 à 22:31
6 janv. 2010 à 22:31
transformer chaque heure en secondes, les additionner et par des divisions les reconvertir en h mn sec
JypX
Messages postés
67
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
6 février 2010
7
7 janv. 2010 à 00:02
7 janv. 2010 à 00:02
Il y a une fonction pour faire ça?
Utilisateur anonyme
7 janv. 2010 à 10:18
7 janv. 2010 à 10:18
Moi, j'aurais converti en timestamp comme te le conseille Alain, puis tu additionnes les deux valeurs et ensuite, tu remets en format date grâce à la fonction date()
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 12/10/2012 à 13:18
Modifié par Alain_42 le 12/10/2012 à 13:18
as tu bien lu ce qu'il voulait ?
Je cherche bêtement à additionner des heures au format 12:04:43.
12:04:43 + 14:57:07 = 27:01:50 ou 1jour 3:01:50 (je préfère le 27heures:))
Je cherche bêtement à additionner des heures au format 12:04:43.
12:04:43 + 14:57:07 = 27:01:50 ou 1jour 3:01:50 (je préfère le 27heures:))