Je butte depuis 3 jours sur un problème, qui je suis sur sera assez vite résolu, du moins je l'espère.
Je souhaite faire un planning pour gérer des rendez-vous dans la semaine.
Les données seront stockées en base mysql mais pour le moment je simule avec des tableaux.
Le code ci-dessous à pour but de simuler le fonctionnement.
Le problème est que j'ai du mal à sortir les plages horaires pour lesquelles il n'y a pas de rendez-vous, en fait, mon code ne m'en sorte qu'une, par exemple:
08:00:00-->08:40:00 non
08:40:00-->09:20:00 oui
09:20:00-->10:00:00 oui
10:00:00-->10:40:00 oui
10:40:00-->11:20:00 oui
11:20:00-->12:00:00 oui
Alors qu'il devrait me sortir:
08:00:00-->08:40:00 non
08:40:00-->09:20:00 oui
09:20:00-->10:00:00 non
10:00:00-->10:40:00 oui
10:40:00-->11:20:00 oui
11:20:00-->12:00:00 oui
J'ai vraiment du mal à m'en sortir donc si quelqu'un a l'envie de m'aider, voici le code:
<?php
function testHours($heureDebut,$heureFin){
$rdvs = array( array( 'heureDebut' => '08:00:00',
'heureFin' =>'08:40:00'
),
array(
'heureDebut' => '09:20:00',
'heureFin' => '10:00:00'
)
);
$result=array();
for($i=0;$i<count($rdvs[0]);$i++){
$debutRdv= Date('H:i:s',(strtotime(date('Y-m-d')." ".$heureDebut)));
$finRdv= Date('H:i:s',(strtotime(date('Y-m-d')." ".$heureFin)));
$debutRDVBase=Date('H:i:s',(strtotime(date('Y-m-d')." ".$rdvs[$i]['heureDebut'])));
$finRDVBase=Date('H:i:s',(strtotime(date('Y-m-d')." ".$rdvs[$i]['heureFin'])));
//echo $debutRdv.">=".$debutRDVBase." && ".$finRdv."<=".$finRDVBase."<br><br>";
if(($debutRdv>=$debutRDVBase)&&($finRdv<=$finRDVBase)){
echo $heureDebut."-->".$heureFin." non<br>";
return false;
}else{
echo $heureDebut."-->".$heureFin." oui<br>";
return true;
}
}
}
$tps=strtotime(date('Y-m-d')." 08:00:00");
$oldDate="";
while($tps<strtotime(date('Y-m-d')." 12:00:00")){
$oldDate=date("H:i:s",$tps);
//echo date("H:i:s",$tps);
$tps+=40*60;//40minutes
//echo "-->".date("H:i:s",$tps);
$newDate=date("H:i:s",$tps);
if(testHours($oldDate,$newDate))
{
//echo $oldDate."-->".$newDate."<br />";
}
}
?>
Merci d'avance !!!