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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager