Php addition heure

Résolu
JypX Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
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....

9 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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); 
?>
6
JypX Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   7
 
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!!!
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;
}
3
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
2
inconnu
 
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))
1
inconnu
 
donne : 00-09-26
mettre H:i:s pour l'heure au format 00:09:26
H pour l'heure format 24h
h pour l'heure format 12h
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
transformer chaque heure en secondes, les additionner et par des divisions les reconvertir en h mn sec
0
JypX Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   7
 
Il y a une fonction pour faire ça?
0
Utilisateur anonyme
 
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()
0
Utilisateur anonyme
 
Autant pour moi, j'ai pas fait attention
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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:))
0