Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:kalenderwoche

Kalenderwochen in PHP

Anzahl der Kalenderwochen eines Jahres

Ein Kalenderjahr kann 52 oder auch 53 Kalenderwochen haben. Laut ISO 8601 ist die erste Kalenderwoche im Jahr diejenige, die den ersten Donnerstag enthält. Somit kann es auch vorkommen, dass der 29.12., 30.12. und 31.12. schon zu der 1. Kalenderwoche des Folgejahres gezählt wird. Im Umkehrschluss befindet sich der 28.12. definitiv immer in der letzten Kalenderwoche des Jahres. Diesen Umstand können wir nutzen, um die Anzahl der Kalenderwochen für ein bestimmtes Jahr in Erfahrung zu bringen.

$year = 2018;
$kw = date('W',strtotime('28.12.' . $year ) ); // letzte Kalenderwoche im Jahr
  • Ergebnis für $year 2018: $kw = 52
  • Ergebnis für $year 2015: $kw = 53

Erster Tag einer Kalenderwoche herausbekommen

$year = 2018;
$week = 23;
 
$monday = strtotime( sprintf( "%dW%02d", $year, $week ) ); // z. B. für 23. KW in 2018: "2018W23"
echo date( 'd.m.Y', $monday );

Als Ergebnis wird der „04.06.2018“ zurückgegeben.

Erläuterung zum Format der Funktion „sprintf“

Das oben benutzte Format der PHP-Funktion „sprintf“ besteht aus den folgenden drei Komponenten:

  • %d = Der erste Parameter ($year) wir im Ergebnis als Dezimalwert dargestellt
  • W = der Buchstabe „W“ wird geschrieben, damit die Angabe des Datums der ISO-Norm entspricht
  • %02d = der 2. Parameter wird ggf. mit „0“ ausgefüllt, damit er immer 2stellig ist (z. B. Wird „8“ dadurch zur „08“
php/kalenderwoche.txt · Zuletzt geändert: 2018/11/02 09:27 (Externe Bearbeitung)