PHP: Calculez la différence entre deux temps

Si vous travaillez a l’heure, vous aurez surement besoin de ce tout petit script. En effet, il permet de calculer la différence entre 2 heures.
Alors, qu’attendez-vous?
Le CSS
#full {
padding:15px;
background: #000;
border: #666 solid 2px;
margin:30px auto auto auto;
color:#FFF;
width:400px;
text-align:center;
}
.ok, .error {
font-size:18px;
padding:10px;
margin-bottom:20px;
}
.ok {
background:#0C0;
border:#060 solid 1px;
}
.error {
background: #de0404;
border:#F00;
}
Dans notre cas, le CSS est trés basique vu qu’il sert juste a aligner la « boite » (div) du formulaire en centre et pour que les deux message (erreur et succés) soient mieux compréhensible.
Le PHP
<?php $hdeb=''; $hfin=''; if (isset($_GET['deb']) && $_GET['deb']!="" && count(explode(":",$_GET['deb']))==3) { $hdeb=$_GET['deb']; $hfin=$_GET['fin']; function difheure($heuredeb,$heurefin) // J'ai trouvé cette fonction sur cette page: http://www.asp-php.net/ressources/bouts_de_code.aspx?id=799 // Merci à DB77 pour cette fonction. { $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])); } // Appel echo 'La difference d\'heure est : '.difheure($hdeb,$hfin).''; } else if (isset($_GET['deb'])==false){ echo 'Veuillez rempire les champs celon ce format: hh:mm:ss'; } else { echo 'Erreur: Verifiez les champs'; } ?>D’abord, J’ai commencé par initialisé à vide les 2 variables
$hdebet$hfinqui vont contenir respectivement l’heure de début et l’heure de fin.
Ensuite, une condition vérifie s’il y a deb envoyé comme paramètre et si ce même deb n’est pas vide (chaine de caractère). Pour la dernière, j’avais voulu ajouté la vérification de la taille du tableau, qui est crée a partir d’explode(), est égale a 3, vu que notre chaine$_GET['deb']est composé de 3 sous-chaines (si quelqu’un a une meilleur idée, qu’il m’informe par commentaire car je pense que la dernier partie n’est pas à 100% fiable):if (isset($_GET['deb']) && $_GET['deb']!="" && count(explode(":",$_GET['deb']))==3)Si cette condition est vérifié, on déclare la fonction
difheure()(que j’ai trouvé sur ce site en passant, merci a DB77 pour l’avoir concu) pour l’appeler juste aprés et ainsi avoir la différence d’heure:function difheure($heuredeb,$heurefin) // J'ai trouvé cette fonction sur cette page: http://www.asp-php.net/ressources/bouts_de_code.aspx?id=799 // Merci à DB77 pour cette fonction. { $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])); } // Appel echo 'La difference d\'heure est : '.difheure($hdeb,$hfin).'';Si la condition précédente est fausse et
$_GET['deb']n’existe pas, on affiche un petit message pour que l’utilisateur remplis les champs
Sinon, on affiche une erreur:else if (isset($_GET['deb'])==false){ echo 'Veuillez rempire les champs celon ce format: hh:mm:ss'; } else { echo 'Erreur: Verifiez les champs'; }Le (x)HTML
Juste un petit formulaire (et la fermeture de la div):
J’éspere que ce petit tutoriel vous a plu.
Abonnez-vous au flux RSS et vous aurez tous les nouveaux articles délivrés pour vous!
[...] This post was mentioned on Twitter by Diana, LOvev'cade and LOvev'cade, TuniLame. TuniLame said: #PHP: Calculez la différence entre deux temps http://bit.ly/asQ8Mm #webmaster #freelance pour ceux(celles) qui sont payé(e)s à l'heure. [...]
Merci pour l’explication