Code-Snippets » Kalender mit aktuellem Monat

Kalender mit aktuellem Monat

Dieses Skript gibt einen einfachen Kalender aus, der den aktuellen Monat ausgibt und das heutige Datum farblich hervorhebt.

Code anklicken zum kopieren

<?php
// Aktuelles Datum
$heutigesDatum = date('Y-m-d');

// Aktueller Monat und Jahr
setlocale(LC_TIME, 'de_DE.utf8');
$monatsname = strftime('%B', strtotime('first day of this month'));
$aktuellerMonat = date('m');
$aktuellerJahr = date('Y');

// Anzahl der Tage im aktuellen Monat
$anzahlTage = cal_days_in_month(CAL_GREGORIAN, $aktuellerMonat, $aktuellerJahr);

// Ersten Tag des aktuellen Monats
$ersterTag = date('N', strtotime("$aktuellerJahr-$aktuellerMonat-01"));

// HTML-Tabelle für den Kalender
echo '<table style="border: 1px solid black;">';

// Tabellenkopf mit Monatsname und Wochentagen
echo '<thead><tr>';
echo '<th colspan="7">' . $monatsname . ' ' . $aktuellerJahr . '</th>';
echo '</tr><tr>';
echo '<th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sa</th><th>So</th>';
echo '</tr></thead>';

// Tabellenkörper
echo '<tbody>';

// Zeilen für die Kalendertage
echo '<tr>';

// Leerzellen bis zum ersten Tag des Monats
for ($i = 1; $i < $ersterTag; $i++) {
echo '<td></td>';
}

// Tage des Monats
for ($tag = 1; $tag <= $anzahlTage; $tag++) {
// Hervorhebung für das heutige Datum
$hervorhebung = ($heutigesDatum == "$aktuellerJahr-$aktuellerMonat-$tag") ? ' style="background-color: yellow;"' : '';

echo "<td$hervorhebung>$tag</td>";

// Neue Zeile für die Woche beginnen
if (($tag + $ersterTag - 1) % 7 == 0 && $tag != $anzahlTage) {
echo '</tr><tr>';
}
}

// Leerzellen bis zum Ende der letzten Woche
for ($i = ($tag + $ersterTag - 1) % 7; $i < 7; $i++) {
echo '<td></td>';
}

echo '</tr>';
echo '</tbody>';
echo '</table>';
?>

Code anklicken zum kopieren


Der Kalender kann mit CSS natürlich an das eigene Design angepasst werden.

Demo ansehen


Du darfst dieses Snippet kostenlos und uneingeschränkt nutzen, einschließlich kommerzieller Zwecke! Ich würde mich sehr darüber freuen, wenn du als kleine Geste der Anerkennung einen Link zu meiner Webseite auf deiner eigenen Seite platzieren könntest. Vielen Dank! :)