Möchten Sie das Startdatum und das Enddatum von einer Woche in einem expliziten Jahr ermitteln? Mit der PHP Funktion date() und strtotime() kann man dies realisieren. Dieses Beispiel kann man dazu verwenden, um einen dynamischen Kalender zu erstellen oder mehrere Wochen mit dem Datum in einer MySQL Datenbank speichern möchte.
Anm.: Man muss hierbei aber beachten, dass man Datums vor den 1.1.1970 nicht ermitteln kann. Da die PHP-Funktion strtotime() mit den Timestamp arbeitet. Der Timestamp wird seit den 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 man das Startdatum und Enddatum einer Woche ermitteln kann.
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ück gewandelt wird. Zuletzt wird das Datum mit einen 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.