Posez votre question Signaler

Php addition heure [Résolu]

JypX 59Messages postés 21 décembre 2009Date d'inscription - Dernière réponse le 7 janv. 2010 à 19:36
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....
Lire la suite 

Php addition heure »

Suggestions
7 réponses
Réponse
+2
moins plus
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); 
?>
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
transformer chaque heure en secondes, les additionner et par des divisions les reconvertir en h mn sec
Ajouter un commentaire
Réponse
+0
moins plus
Il y a une fonction pour faire ça?
Ajouter un commentaire
Réponse
+0
moins plus
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()
Ajouter un commentaire
Réponse
+0
moins plus
Autant pour moi, j'ai pas fait attention
Ajouter un commentaire
Réponse
+0
moins plus
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;
}
Ajouter un commentaire
Ce document intitulé « php addition heure » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?