par
tesmet » 12 nov. 2014, 17:47
Il n'y a pas beaucoup d'information sur les données à afficher dans le calendrier, à toi de compléter et d'ajuster.
<?php
function afficher_calendrier($array_date) { // ISO-8601 ?
$noms_mois = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$noms_jour = array('Lundis', 'Mardis', 'Mercredis', 'Jeudis', 'Vendredis', 'Samedis', 'Dimanches');
list($annee, $mois,) = explode('.', key($array_date)); // quel mois somme nous
$premier = date('N', mktime(0, 0, 0, $mois, 1, $annee)); // jour de la semaine du premier du mois - PHP 5.1.0
$dernier = date('j', mktime(0, 0, 0, $mois+1, 0, $annee)); // dernier jour du mois
$debut = 2 - $premier; // premier indice de boucle
$fin = date('N', mktime(0, 0, 0, $mois, $dernier, $annee)); // jour de la semaine du dernier du mois - PHP 5.1.0
$fin = ($fin<7) ? 7-$fin+$dernier : $dernier; // dernier indice de boucle
echo '<table width="100%" border="1" cellspacing="0" cellpadding="0">', PHP_EOL;
printf("<tr>\n <th>%s %4d</th>\n", $noms_mois[$mois-1], $annee);
for($i = $debut; $i < $dernier+1; $i+=7) {
$x = ($i > 0) ? $i : 1;
$y = ($i+6 < $dernier+1) ? $i+6 : $dernier;
printf(" <th>du %02d au %02d</th>\n", $x, $y);
}
echo '</tr>', PHP_EOL;
$j = -1;
foreach($noms_jour as $jour_semaine) {
printf("<tr>\n <th>%s</th>\n", $jour_semaine);
$j++;
for($i=$debut+$j; $i <= $fin; $i+=7) {
$jour = ($i > 0) ? ($i <= $dernier) ? $i : 0 : 0;
if($jour) {
$date = date('Y.m.d', mktime(0, 0, 0, $mois, $jour, $annee));
if(isset($array_date[$date])) printf("<td>%s : %s</td>\n", $date, $array_date[$date]);
else echo '<td> </td>', PHP_EOL;
}
else echo '<td> </td>', PHP_EOL;
}
echo '</tr>', PHP_EOL;
}
echo '</table>', PHP_EOL;
}
$result['2014.11.23'] = 'Salut et Bonjour';
$result['2014.11.15'] = 'Aujourd\'hui et pour toujours';
$result['2014.11.30'] = 'Est-ce la fin ?';
$result['2014.11.01'] = 'Somme nous au début ?';
$result['2014.11.07'] = 'J\'ai un faible pour le 7';
$result['2014.11.10'] = 'Stupide lundi du 10';
$result['2014.11.25'] = 'C\'est bien le mardi 25?';
$result['2014.11.05'] = 'Le Mercredi est le milieu de semaine.';
$result['2014.11.20'] = 'Le 20 semble être un jeudi.';
afficher_calendrier($result);
?>
bonne chance
Il n'y a pas beaucoup d'information sur les données à afficher dans le calendrier, à toi de compléter et d'ajuster.
[php]<?php
function afficher_calendrier($array_date) { // ISO-8601 ?
$noms_mois = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$noms_jour = array('Lundis', 'Mardis', 'Mercredis', 'Jeudis', 'Vendredis', 'Samedis', 'Dimanches');
list($annee, $mois,) = explode('.', key($array_date)); // quel mois somme nous
$premier = date('N', mktime(0, 0, 0, $mois, 1, $annee)); // jour de la semaine du premier du mois - PHP 5.1.0
$dernier = date('j', mktime(0, 0, 0, $mois+1, 0, $annee)); // dernier jour du mois
$debut = 2 - $premier; // premier indice de boucle
$fin = date('N', mktime(0, 0, 0, $mois, $dernier, $annee)); // jour de la semaine du dernier du mois - PHP 5.1.0
$fin = ($fin<7) ? 7-$fin+$dernier : $dernier; // dernier indice de boucle
echo '<table width="100%" border="1" cellspacing="0" cellpadding="0">', PHP_EOL;
printf("<tr>\n <th>%s %4d</th>\n", $noms_mois[$mois-1], $annee);
for($i = $debut; $i < $dernier+1; $i+=7) {
$x = ($i > 0) ? $i : 1;
$y = ($i+6 < $dernier+1) ? $i+6 : $dernier;
printf(" <th>du %02d au %02d</th>\n", $x, $y);
}
echo '</tr>', PHP_EOL;
$j = -1;
foreach($noms_jour as $jour_semaine) {
printf("<tr>\n <th>%s</th>\n", $jour_semaine);
$j++;
for($i=$debut+$j; $i <= $fin; $i+=7) {
$jour = ($i > 0) ? ($i <= $dernier) ? $i : 0 : 0;
if($jour) {
$date = date('Y.m.d', mktime(0, 0, 0, $mois, $jour, $annee));
if(isset($array_date[$date])) printf("<td>%s : %s</td>\n", $date, $array_date[$date]);
else echo '<td> </td>', PHP_EOL;
}
else echo '<td> </td>', PHP_EOL;
}
echo '</tr>', PHP_EOL;
}
echo '</table>', PHP_EOL;
}
$result['2014.11.23'] = 'Salut et Bonjour';
$result['2014.11.15'] = 'Aujourd\'hui et pour toujours';
$result['2014.11.30'] = 'Est-ce la fin ?';
$result['2014.11.01'] = 'Somme nous au début ?';
$result['2014.11.07'] = 'J\'ai un faible pour le 7';
$result['2014.11.10'] = 'Stupide lundi du 10';
$result['2014.11.25'] = 'C\'est bien le mardi 25?';
$result['2014.11.05'] = 'Le Mercredi est le milieu de semaine.';
$result['2014.11.20'] = 'Le 20 semble être un jeudi.';
afficher_calendrier($result);
?>[/php]
bonne chance