Comment comparerb deux heures (php)
kiki72
Messages postés
7
Date d'inscription
Statut
Membre
-
snppf -
snppf -
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!!
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!!
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()" -
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 -
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) -
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
?>