Concaténer des dates et des horaires
Bonjour,
Le code ci-dessous affiche les différents horaires de mes films comme ceci (j'ai mis les balises pour que vous compreniez mieux) :
Code:
1 2 3 4 5 6 7 8 9 10 11
| <ul><li><a href="#tabs-1">Vendredi</li></ul>
<div id="tabs-1">Jour : Vendredi - heure : 11:30</div>
----------------------------------
<ul><li><a href="#tabs-2">Vendredi</li></ul>
<div id="tabs-2">Jour : Vendredi - heure : 14:30</div>
----------------------------------
<ul><li><a href="#tabs-3">Samedi</li></ul>
<div id="tabs-3">Jour : Samedi - heure : 11:30</div>
----------------------------------
<ul><li><a href="#tabs-4">Samedi</li></ul>
<div id="tabs-4">Jour : Samedi - heure : 14:30</div> |
Et je voudrais qu'il s'affiche par date. C'est à dire :
Code:
1 2 3 4 5 6
| <ul>
<li><a href="#tabs-1">Vendredi</li>
<li><a href="#tabs-2">Samedi</li>
</ul>
<div id="tabs-1">Jour : Vendredi heure : 11:30 & 14:30</div>
<div id="tabs-2">Jour : Samedi - heure : 11:30 & 14:30</div> |
Voici le code qui permet d'obtenir cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| echo '<div id="horaires-sceances">';
$parametres = simplexml_load_file(fichier.xml);
$evenements = $parametres->listeEvenements->evenement->listeRepresentations->representation;
$i=1;
foreach( $evenements as $evenement) {
$lien = $evenement->lien; // On récupère le lien pour la résa
$horaires = $evenement->debut; // On récupère les horaires
$pieces = explode(" - ", $horaires); // On divise la chaine de caractere en 2
$date_evenement_before = $pieces[0];// Date evenement type 19/07/2012
$date_evenement = explode('/', $date_evenement_before);
$date_evenement_after = $date_evenement[2].'-'.$date_evenement[1].'-'.$date_evenement[0]; // On change la date de 19/07/2012 à 2012-07-19
$date_jour = date('Y-m-d');// Date du jour type 2012-07-19
$debut = new DateTime($date_jour);
$fin = new DateTime($date_evenement_after);
$interval = $debut->diff($fin); // On récupère le nb de jour d'interval entre la date du jour et la date de l'évènement
$int = $interval->format('%a'); // Jour et Mois
$dates = date_create_from_format('d/m/Y', $pieces[0]); // d/m/Y == 01/01/2012
$date = date_format($dates, 'D'); // on modifie la date de 19/07/2012 à Jeudi
//On passe les jours en Français
if ($date == 'Mon'){ $date = 'Lundi'; }
elseif($date == 'Tue'){ $date = 'Mardi'; }
elseif($date == 'Wed'){ $date = 'Mercredi'; }
elseif($date == 'Thu'){ $date = 'Jeudi'; }
elseif($date == 'Fri'){ $date = 'Vendredi'; }
elseif($date == 'Sat'){ $date = 'Samedi'; }
elseif($date == 'Sun'){ $date = 'Dimanche'; }
if( $int < 15 ){ // On affiche que les évènement entre J & J+14 (2 semaines)
echo '<div id="tabs-sceances">';
echo '<ul class="ul-tabs">';
echo '<li><a href="#tabs-'.$i.'">'.$date.'</a></li>';
echo '</ul>';
echo '<div id="tabs-'.$i.'" class="div-tabs">';
echo 'date jour : '.$date_jour.'<br/>';
echo 'date evenement : '.$date_evenement_after.'<br/>';
echo 'interval : '.$int.'<br/>';
echo 'Jour : '.$date.'<br/>';
echo 'Lien resa : <a href="'.$lien.'">'.$lien.'</a><br/>';
echo 'heure : '.$pieces[1].'<br/>'; // On affiche l'heure
echo '------------------------------------<br/>';
echo '</div>'; //<!-- Fin #tabs-$i -->
echo '</div>'; //<!-- Fin #tabs-sceances -->
} // Fin if interval
$i++;
} // Fin foreach
echo '</div>'; // Fin div #horaires-sceances |
A terme le code sera dans des onglets avec pour titre le jour et pour contenu les horaires.
Comment est-ce possible ce n'afficher qu'une fois la date mais avec les deux horaires correspondant ?
Merci d'avance
the_tiger85