Comment comparerb deux heures (php)

Fermé
kiki72 Messages postés 7 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 4 avril 2008 - 21 mars 2008 à 09:52
 snppf - 14 avril 2009 à 12:46
Bonjour,
je voudrais savoir comment fait ton pour comparer deux heures

ex:

il commence a 10:30 puis fini a 11:30 la durer est de 1h mais comment le faire faire avec php??

j'ai 2 tables mysql une heure de début: heured et une heures de fin: heuref.

et dans un tableau d'affichage g une case durée mais je c pa trop comment faire??? je croit qu'il fo un mktime ou quelque chose comme sa!!!


je demande votre aide svp, merci d'avance!!
A voir également:

4 réponses

Tout dépend de comment sont stockées tes dates.. est-ce des champs datetime, varchar, timestamp... ?

Sinon tu peux carrement le faire en SQL (dans ta requète) avec les fonctions de date :
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
=> voir "datediff()"
0
kiki72 Messages postés 7 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 4 avril 2008
21 mars 2008 à 12:05
oui donc les heures sont stockées dans un datetime il ya le champ heured et heuref.

et je voudrais pouvoir calculer la durée entre les deux pour l'afficher dans un tableau!! vous voyers a peut pret le truc?
0
oui, utilise simplement un datediff()

ex: select heured, heuref, datediff(heuref, heured) from ...


NB : datediff ne te remonte qu'une différence en jours ! donc pas forcement génial.
Si tu veux le faire en php regardes du coté de la fonction "strftime" https://www.php.net/strftime
0
sinon fais :

select UNIX_TIMESTAMP(heured), UNIX_TIMESTAMP(heuref) from ...

et ensuite tu travaille avec des timestamp en utilisant la fonction date() de php pour les formater comme tu veux.
La différence entre les deux sera donc la soustraction des deux dates (en nombre de secondes)
0
voici une fonctio qui marche bien pour faure la difference entre deux heures

/fonction addition heure difheure(debut , fin )
function difheure($heuredeb,$heurefin)
{
$hd=explode(":",$heuredeb);
$hf=explode(":",$heurefin);
$hd[0]=(int)($hd[0]);$hd[1]=(int)($hd[1]);$hd[2]=(int)($hd[2]);
$hf[0]=(int)($hf[0]);$hf[1]=(int)($hf[1]);$hf[2]=(int)($hf[2]);
if($hf[2]<$hd[2]){$hf[1]=$hf[1]-1;$hf[2]=$hf[2]+60;}
if($hf[1]<$hd[1]){$hf[0]=$hf[0]-1;$hf[1]=$hf[1]+60;}
if($hf[0]<$hd[0]){$hf[0]=$hf[0]+24;}
return (($hf[0]-$hd[0]).":".($hf[1]-$hd[1]).":".($hf[2]-$hd[2]));
}
// fin de fonction
?>
0