I think I am fully aware of ISO 8601 and that the first week of a year is the week that has a Monday in it. However I came across a strange behavior in PHP (5.6) DateTime Class.
Here is my code:
$start = new DateTime('2009-01-01 00:00');
$end = new DateTime();
$point = $start;
while($point <= $end){
echo $point->format('YW');
$point = $point->modify('next week');
}
This puts out correctly
200901
200902
200903
...
But if I pick as a start date something earlier in 2008 like $start = new DateTime('2008-01-01 00:00');
then I get a different result:
...
200852
200801 // <=== 2008??
200902
200903
...
Is this a PHP bug or am I'm missing something here?