Hallo Forum,
der Aufruf date("w") gibt mir die aktuelle ISO-Woche zurück.
Mein Bestreben ist es, das ganze umzudrehen. Ich habe die Kalenderwoche (auch ISO), und möchte damit den Range der KW ermitteln.
Ewiges Herumprobieren hat mich letztendlich zu diesem Vorgehen geführt:
Die Kalenderwoche ist beispielsweise 52 (das wäre die jetzige Woche). 52 Wochen haben 52*7=364 Tage. Das heißt nun aber nicht, dass KW52 am 364 Tag des Jahres endet. Man muss die Differenz zwischen dem 1.1. des jeweiligen Jahres und dem Sonntag vor Woche 1 abziehen. In diesem Jahr wäre das 4 (Donnerstag (1.1.2009) bis Sonntag (4.1.2009)). Nun kommt man auf den 364-4=360sten Tag des Jahres. Und siehe da, das ist der 27.12.2009, der Sonntag an dem die KW52 endet. Den Montag dazu herauszufinden ist ein Kinderspiel.
Das wäre dann folgender Code:
$stt_sonntag = ($_SESSION['kw'] * 7) - (7 - date("w", strtotime($_SESSION['year']."-01-01")));
Funktioniert im Jahr 2009 tadellos und zufriedenstellend. Ab Woche 53 im Jahr 2009 macht der Code allerdings nicht mehr mit, und ich habe absolut keine Ahnung warum. Das dürfte doch im Jahr 2010 auch klappen.
Wahrscheinlich ist der Fehler so klein, dass ich ihn schon nicht mehr sehe.
MfG
wunderBAR