<?php
function afficher_calendrier() {
$ce_mois_lettres = date('F');
$jours_semaine = array('Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su');
$premier_jour = mktime('0', '0', '0', date('m'), '1', date('Y'));
// haut du tableau
$calendar = '<table id="calendrier">'."\n";
$calendar.= '<caption>'.$ce_mois_lettres.'</caption>'."\n";
$calendar.= '<tr><th>'.implode('</th><th>', $jours_semaine).'</th></tr><tr>';
// un nouveau mois ne commence pas forcément le premier jour de la semaine (lundi)
$decalage_jour = date('w', $premier_jour-'1');
if ($decalage_jour > 0) {
for ($i = 0; $i < $decalage_jour; $i++) {
$calendar.= '<td></td>';
}
}
// création du tableau
$date_t = date('t');
$date_d = date('d');
for ($jour = 1; $jour <= $date_t; $jour++) {
$calendar.= '<td';
// ajoute une classe CSS sur aujourd'hui
$calendar .= ($jour == $date_d) ? ' class="active"' : '';
$calendar.= '>';
$calendar.= $jour;
$calendar.= '</td>';
$decalage_jour++;
if ($decalage_jour == '7') {
$decalage_jour = '0';
$calendar.= '</tr>'."\n";
$calendar.= ($jour < $date_d) ? '<tr>' : '';
}
}
// complète le tableau HTML avec des cases vides à la fin
if ($decalage_jour > '0') {
for ($i = $decalage_jour; $i < '7'; $i++) {
$calendar.= '<td></td>';
}
$calendar.= '</tr>'."\n";
}
$calendar.= '</table>'."\n";
return $calendar;
}
?>