Möchten Sie das Startdatum und das Enddatum von einer Woche in einem expliziten Jahr ermitteln? Mit der PHP Funktion date() und strtotime() können Sie dies realisieren. Dieses Beispiel können Sie dazu verwenden, um einen dynamischen Kalender zu erstellen oder mehrere Wochen mit dem Datum in einer MySQL Datenbank speichern möchte.
Anm.: Sie müssen hierbei aber beachten, dass Sie das Datum vor dem 1.1.1970 nicht ermitteln können. Da die PHP-Funktion strtotime() mit dem Timestamp arbeitet. Der Timestamp wird seit dem 1.1.1970 in Sekundentakt hoch gezählt.
Daher ist es nicht möglich, den Wochentag vor einem Jahr von 1970 zu ermitteln. Nachfolgend das Beispiel, wie Sie das Startdatum und Enddatum einer Woche ermitteln können.
Beispiel:
<?php
$jahr = '2011';
$kalenderwoche = '48';
/*
* Montag
*/
$timestamp_montag = strtotime("{$jahr}-W{$kalenderwoche}");
echo '<p>Der Montag von der Kalenderwoche: <i>' .
$kalenderwoche . '</i> im Jahr: <i>' .
$jahr . '</i> ist am: ';
echo date("d.m.Y", $timestamp_montag) . '</p>';
/*
* Sonntag
*/
$timestamp_sonntag = strtotime("{$jahr}-W{$kalenderwoche}-7");
echo '<p>Der Sonntag von der Kalenderwoche: <i>' .
$kalenderwoche . '</i> im Jahr: <i>' .
$jahr . '</i> ist am: ';
echo date("d.m.Y", $timestamp_sonntag) . '</p>';
/*
* Freitag
*/
$timestamp_freitag = strtotime("{$jahr}-W{$kalenderwoche}-5");
echo '<p>Die Arbeitswoche: <i>' .
$kalenderwoche . '</i> im Jahr: <i>' .
$jahr . '</i> beginnt am: ';
echo date("d.m.Y", $timestamp_montag) .
' und endet am: ' . date("d.m.Y", $timestamp_freitag) .
'</p>';
?>
Ausgabe:
Der Montag von der Kalenderwoche: 48 im Jahr: 2011 ist am: 28.11.2011
Der Sonntag von der Kalenderwoche: 48 im Jahr: 2011 ist am: 04.12.2011
Die Arbeitswoche: 48 im Jahr: 2011 beginnt am: 28.11.2011 und endet am: 02.12.2011
Erklärung:
Als Erstes wird in der Variable $jahr und $kalenderwoche die entsprechende Kalenderwoche aus einem Jahr definiert. Anschließend wird der PHP Funktion strtotime() das Jahr und die Woche übergeben.
Die PHP-Funktion strtotime() liefert den Timestamp zurück, welcher anschließend in Verbindung mit date() wieder zu einem Datum zurückgewandelt wird. Zuletzt wird das Datum mit einem entsprechenden Text über die PHP-Funktion echo ausgegeben.
Eine weitere Erklärung zum Thema Timestamp sowie ein entsprechendes Tool, zum Umwandeln des Timestamp finden Sie hier.