Boucle sur des créneaux horaires avec php
Posté : 25 août 2015, 13:17
Bonjour,
Je développe un script d'affichage de créneau horaire avec php.
L'idée est d'afficher 1 résultat par créneaux horaire entre deux horaires avec un intervalle de X mn.
Ces données proviennent d'une base de donnée qui présente les données suivantes :
#TABLE HORAIRE
idunique (INT)
tranchehoraire (HH:MM-HH:MM)
J'ai réussi à développer quelque chose qui fonctionne mais si les horaires sont dans la même journée.
Par contre si mon heure de départ est le soir par exemple 23h et mon heure d'arrivée à 02h du matin, cela ne fonctionne pas.
Normal vu que le script se base sur...la date du jour avec time().
Mais mon cerveau atteint ses limites
et je ne vois pas comment trouver si une tranche horaire est entre deux jours ou le jour même avec simplement comme donnée une tranche horaire.
Une idée pour m'aider ?
Mon script ci-dessous
Merci 
Je développe un script d'affichage de créneau horaire avec php.
L'idée est d'afficher 1 résultat par créneaux horaire entre deux horaires avec un intervalle de X mn.
Ces données proviennent d'une base de donnée qui présente les données suivantes :
#TABLE HORAIRE
idunique (INT)
tranchehoraire (HH:MM-HH:MM)
J'ai réussi à développer quelque chose qui fonctionne mais si les horaires sont dans la même journée.
Par contre si mon heure de départ est le soir par exemple 23h et mon heure d'arrivée à 02h du matin, cela ne fonctionne pas.
Normal vu que le script se base sur...la date du jour avec time().
Mais mon cerveau atteint ses limites
Une idée pour m'aider ?
Mon script ci-dessous
Code : Tout sélectionner
<?php
$datedujour = time();
$tranchehoraire_explode=explode("-",$result['tranchehoraire']); // $result['tranchehoraire'] : donnée en provenance de mysql
$heuredebut=strtotime($tranchehoraire_explode[0]);
$heurefin=strtotime($tranchehoraire_explode[1]);
$delaicreneau=15*60; // 15 mn de créneau entre 2 résultats (15*60 car résultat en minute)
for($i=$heuredebut; $i<$heurefin; $i+=$delaicreneau)
{
if( $i < $datedujour) continue;
echo ''.date("H:i",$i).'<BR>';
}
?>