date gibt Blödsinn zurück ?

BeaTBoxX

Erfahrenes Mitglied
Hallo zusammen,

ich programmier grade an einem Terminkalender in PHP

ich benutze PHP Version 4.3.1 hier auf Windows.

Folgendes Problem:
Ich will fuer eine Berechnung die Kalenederwoche eines Datums (In diesem Fall des 1. des Monats) haben.
Laut Doku ist das der Parameter 'W'.

Soweit, so unklar.

Bei bestimmten Daten allerdings gibt die Date-Funktion totalen Blödsinn aus:

Beispiel:
Code:
echo date('W',mktime(0,0,0,1,1,2004));

// Ergebnis -> KW 1
gibt, wie man es vom ersten januar erwartet 1 aus

Allerdings:

Code:
echo date('W',mktime(0,0,0,1,1,2005));

// Ergebnis -> KW 53

spuckt bei mir Kalenderwoche 53 aus.
Der Tag ändert manchmal nichts daran ,manchmal schon z.b.

Code:
echo date('W',mktime(0,0,0,1,2,2005));

// Ergebnis -> KW 53

während der 5. Januar wieder korrekt ist: -> 1

Dann hab ich an Sommer/Winterzeit Verschiebung oder irgendwas derartiges gedacht und statt 00:00:00 Uhr mal was anderes verwendet, was aber auch nicht funktioniert:

Code:
echo date('W',mktime(12,42,42,1,1,2005));

// Ergebnis -> KW 53


Kann mich bitte jemand aufklaeren, was ich falsch mache?

Vielen Dank!

Gruß
Frank
 
Zuletzt bearbeitet:
Was bedeutet "KW"?
Hab es mal bei mir getestet und es wird (beim 1. Beispiel) wie erwartet "1" ausgegeben.
 
KW = Kalenderwoche.. ja das hab ich nur so hingeschrieben.
Für eine Ausgabe der Form ' KW 1' müsste ich natuerlich schreiben:

Code:
echo'KW '.date(.....);

Ich hab das mittlerweile auf 3 Systemen probiert und immer das gleiche :(


@ shorty: sorry.. hab den Thread wohl schlecht geschrieben. Das erste Beispiel ja auch.

Allerdings sollte bei JEDEM beispiel das Ergebnis KW 1 sein
 
Zuletzt bearbeitet:
Der 1. und der 2. Januar 2005 gehören zur letzten KW von 2004.
Die Funktion [phpf]date[/phpf] ermittelt die Kalenderwoche nach ISO-8601. Gibt man das bei Google ein, kommt man z.B. zu einer Beschreibung von ISO-8601. Dort heisst es:
Week 01 of a year is per definition the first week that has the Thursday in this year, which is equivalent to the week that contains the fourth day of January. In other words, the first week of a new year is the week that has the majority of its days in the new year. Week 01 might also contain days from the previous year and the week before week 01 of a year is the last week (52 or 53) of the previous year even if it contains days from the new year. A week starts with Monday (day 1) and ends with Sunday (day 7).
Das Ergebnis ist also per Definition korrekt.

Gruß hpvw
 
Zurück