Mit dem folgenden, kleinen PHP Skript kann man auf seiner Webseite ganz einfach eine Monats-Übersicht einbauen, die den aktuellen Tag, die vergangenen Tage und die noch kommenden Tage des Monats anzeigt. Mit der Monatsübersicht lassen sich, zusammen mit unserem Skript für die aktuelle Uhrzeit und dem Skript zur Datumsausgabe neben einer Webseite auch schicke Oberflächen für das Smart-Home Display gestalten.
Live-Demo: So sieht die Monats-Übersicht aus
Das Skript für die Monats-Anzeige:
<?php
date_default_timezone_set('Europe/Berlin');
$tag = date("d");
$monat = date("m");
$jahr = date("Y");
$anzahl_tage = date("t");
$monatsanfang_timestamp = mktime(0,0,0,$monat, 1, $jahr);
$monatsanfang = date("w", $monatsanfang_timestamp);
$tabelle = '<table border="0" cellpadding="5" cellspacing="1" style="background:#000; color:#FFF; text-align:center">';
$tabelle .= '
<tr>
<td><strong>MO</strong></td>
<td><strong>DI</strong></td>
<td><strong>MI</strong></td>
<td><strong>DO</strong></td>
<td><strong>FR</strong></td>
<td><strong>SA</strong></td>
<td><strong>SO</strong></td>
</tr>
<tr><td colspan="7" style="height:1px;border-bottom:1px solid #FFF;"></td></tr>
<tr>';
$wochentag = 1;
$tag_zaehler = 1;
for($i = 1; $i < $monatsanfang; $i++) {
$tabelle .= '<td></td>'."\n";
$blank = $blank-1;
$wochentag++;
}
while($tag_zaehler <= $anzahl_tage) {
if($tag_zaehler < $tag) {
$tabelle .= '<td style="color:#FFF">'.$tag_zaehler.'</td>'."\n";
} elseif($tag_zaehler == $tag) {
$tabelle .= '<td style="background:#464646;color:#FFF"><b>'.$tag_zaehler.'</b></td>'."\n";
} else {
$tabelle .= '<td style="color:#FFF">'.$tag_zaehler.'</td>'."\n";
}
$tag_zaehler++;
$wochentag++;
if($wochentag > 7) {
$tabelle .= '</tr><tr>'."\n";
$wochentag = 1;
}
}
while($wochentag > 1 && $wochentag <= 7) {
$tabelle .= '<td>xx</td>';
$wochentag++;
}
$tabelle .= '</tr></table></td>';
echo $tabelle;
?>
In dem Beispiel wird nur der aktuelle Tag farbig hervorgehoben, da die Tabellenzelle eine andere Hintergrundfarbe hat. Möchte man auch die abgelaufenen und/oder noch kommenden Tage farbig markieren, muss man diesen Teil des Skriptes anpassen:
if($tag_zaehler < $tag) {
$tabelle .= '<td style="color:#FFF">'.$tag_zaehler.'</td>'."\n";
} elseif($tag_zaehler == $tag) {
$tabelle .= '<td style="background:#464646;color:#FFF"><b>'.$tag_zaehler.'</b></td>'."\n";
} else {
$tabelle .= '<td style="color:#FFF">'.$tag_zaehler.'</td>'."\n";
}
Die erste Zeile mit der if-Abfrage definiert die bereits vergangenen Tage: Wer diese anders farmatieren möchte, kann mit “background-color” die Hintergrundfarbe der Tabelle oder mit “color” die Textfarbe anpassen. Die vierte Zeile (nach der elseif-Abfrage) definiert den aktuellen, heutigen Tag: Hier wird bereits die Hintergrundfarbe auf “#464646” gesetzt. Wenn man die vorletzte Zeile anpasst, kann man die Darstellung der zukünftigen Tage des Monats verändern.