Rechercher : dans
Par :

Comment comparerb deux heures (php)

Dernière réponse le 14 avr 2009 à 12:46:22 kiki72, le 21 mar 2008 à 09:52:14 
 Signaler ce message aux modérateurs

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!!

1

bro, le 21 mar 2008 à 11:43:53

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-functio­ns.html
=> voir "datediff()"

Répondre à bro

2

kiki72, le 21 mar 2008 à 12:05:42

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?

Répondre à kiki72

3

bro, le 21 mar 2008 à 12:16:56

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" http://fr.php.net/strftime

Répondre à bro

4

bro, le 21 mar 2008 à 12:27:02

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)

Répondre à bro

5

 snppf, le 14 avr 2009 à 12:46:22

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
?>

Répondre à snppf