:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
Den aktuellen Monat in Kalenderform darstellen |
Beispielaufgabe
Es soll eine Kalenderansicht für den aktuellen Monat ausgegeben werden, wobei der aktuelle Tag hervorgehoben werden soll.
Beschreibung
Die FOR-Schleife im folgenden Code Snippet, baut die Tabelle für die Monatsansicht des aktuellen Monats auf. Hier wird zuerst die Tabelle mit Leerzellen gefüllt, bis zu dem Wochentag, an dem der Monat beginnt. Danach wird die Tabelle mit den Monatstagen gefüllt und der aktuelle Tag besonders hervorgehoben.
<?PHP
$strBuildMonth = '<table><tr>';
// Tag der Woche 0 (fuer Sonntag) - 6 (fuer Samstag)
$iDayOfWeek = date ( 'w', mktime ( 0, 0, 0, date ( 'n' ), 1,
date ( 'Y' ) ) );
if ( !$iDayOfWeek )
{
// Woche beginnt mit Montag, deshalb Sonntag
// Wochentag 7 statt 0 zuweisen.
$iDayOfWeek = 7;
}
// Tabellenkopf der Monatsansicht. Zum Beispiel:
//
// April
// M D M D F S S
//
$strBuildMonth .= '<table style="border: 2px solid #bcbcbc; background' .
'-color: #fff;"><tr><td colspan="7" style="text-' .
'align: center;">' . date ( 'F', mktime ( 0, 0, 0,
date ( 'n' ), 1, date ( 'Y' ) ) ) . '</td></tr><tr>' .
'<td>M</td><td>D</td><td>M</td><td>D</td><td>F</td>' .
'<td>S</td><td>S</td></tr><tr>';
$iLimit = date ( 't', mktime ( 0, 0, 0, date ( 'n' ), 1,
date ( 'Y' ) ) );
for ( $i = 1; $i <= ( $iLimit + $iDayOfWeek - 1 ); $i++ )
{
$iDayOfMonth = $i - $iDayOfWeek + 1;
if ( $i < $iDayOfWeek )
{
// Leerzellen schreiben, bis Monatsanfang
// auf den richtigen Tag der Woche fällt.
$strBuildMonth .= '<td> </td>';
}
elseif ( $iDayOfMonth == date ( 'd' ) )
{
// Heutigen Tag, hervorheben.
$strBuildMonth .= '<td style="background-color: #889fca; ' .
'font-weight: bold;">' . $iDayOfMonth . '</td>';
}
else
{
$strBuildMonth .= '<td>' . $iDayOfMonth . '</td>';
}
if ( !( $i % 7 ) )
{
// Am Ende eines jeden 7. Durchlaufs die Tabelle umbrechen.
$strBuildMonth .= '</tr><tr>';
}
}
$strBuildMonth .= '</tr></table>';
// Anwendungsbeispiel
print ( $strBuildMonth );
?>
|
Ausgabebeispiel: Browseransicht
April | M | D | M | D | F | S | S | | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
|
|
|
|
|
|