Monatskalender mit PHP

Möchten Sie auf Ihrer Webseite eine Übersicht über die Tage des aktuellen Monats anzeigen, finden Sie hier das passende PHP-Script dazu.

Sie können das nachstehende Script ohne jegliche Veränderung an der Stelle Ihrer Webseite einfügen, wo der Monatskalender erscheinen soll. Es zeigt jederzeit die Tage des aktuellen Monats.

<?php
if(date(w, mktime(0, 0, 0, date(n), 1, date(Y))) == 1 && date(t) == 28)
{
    $AnzahlDerZeilen = 4;
}
elseif(((date(w, mktime(0, 0, 0, date(n), 1, date(Y))) == 6 || date(w, mktime(0, 0, 0, date(n), 1, date(Y))) == 0) && date(t) == 31) || (date(w, mktime(0, 0, 0, date(n), 1, date(Y))) == 0 && date(t) == 30))
{
    $AnzahlDerZeilen = 6;
}
else
{
    $AnzahlDerZeilen = 5;
}
?>
<table border="1" bordercolor="darkgray" cellpadding="2" cellspacing="0">
 <tr>
  <td align="center" colspan="7"><?php echo date("n.Y"); ?></td>
 </tr>
 <tr>
  <td width="25">Mo</td>
  <td width="25">Di</td>
  <td width="25">Mi</td>
  <td width="25">Do</td>
  <td width="25">Fr</td>
  <td width="25">Sa</td>
  <td width="25">So</td>
 </tr>
<?php
$k = 0;
for($i = 1; $i <= $AnzahlDerZeilen; $i++)
{
?>
 <tr>
<?php
    for($j = 1; $j <= 7; $j++)
    {
        if(date(w, mktime(0, 0, 0, date(n), 1, date(Y))) == 0)
        {
            $m = 7;
        }
        else
        {
            $m = date(w, mktime(0, 0, 0, date(n), 1, date(Y)));
        }

        if($m == $j && $j <= 7 && $k == 0)
        {
            $k = 1;
        }
?>
  <td align="right"><?php
        if($k != 0 && $k <= date(t))
        {
            echo$k;
        }
        else
        {
            echo" ";
        }

        if($k != 0)
        {
            $k++;
        }
?></td>
<?php
    }
?>
 </tr>
<?php
}
?>
 </tr>
</table>

Zu Beginn des Scriptes wird bestimmt, aus wie vielen Zeilen der Kalender für den aktuellen Monat bestehen wird. Dabei werden drei Fälle unterschieden:

1. 4 Zeilen:

Dieser recht seltene Fall tritt auf, wenn der erste Tag eines Monats ein Montag ist (date(w, mktime(0, 0, 0, date(n), 1, date(Y)))) und der Monat zudem nur 28 Tage besitzt (date(t) == 28).

2. 6 Zeilen:

Hier werden zwei Fälle unterschieden: Der Monat beginnt mit einem Samstag oder Sonntag und ist 31 Tage lang. Im zweiten Fall hat der Monat 30 Tage und beginnt mit einem Sonntag. In beiden Fällen werden für die korrekte Darstellung des Kalenders 6 Zeilen benötigt.
3. 5 Zeilen:
Trifft keine der vorgenannten Bedingungen zu, besteht der Monatskalender zwangsläufig aus 5 Zeilen.

Im Anschluss an die Bestimmung der Anzahl der Zeilen erfolgt die Ausgabe des Kalenders mit Hilfe zweier ineinander geschachtelter Schleifen. Die erste Schleife erzeugt die entsprechende Anzahl Zeilen, die zweite die jeweiligen Spalten für die Wochentage.

Damit nicht jeder Monat mit einem Montag beginnt, beginnt die Hilfsvariable $k erst dann zu zählen, wenn die Variable $m (enthält den ersten Wochentag eines Monats als Zahl von 1 bis 7) gleich der Variablen $j (zuständig für die Wochentage) ist.

1961 Tage ago by in PHP MySQL | You can follow any responses to this entry through the RSS feed. You can leave a response, or trackback from your own site.

Leave A Response