3

As stated in ISO 8601 there are years that will have 53 weeks, 2015 is one of those. What will be the next week number in 2016? Does it start with week 01 again? The reason I am asking is that in one of my projects an URL "2016-W01" does show the wrong days (eg. Mon. 2nd Jan 2016 - where it should be Mon. 4th Jan 2016). If I am calling "2016-W02" the correct days are coming up (4th-10th Jan.), but "obviously?" this should be week01 and not week2..

Any ideas on this? Thanks!

2 Answers2

1
<?php
$dt = new DateTime('2015-12-27');
for($i=0; $i<12; $i++) {
    echo $dt->format('Y-m-d , D, W'), "\r\n";
    $dt->modify('+ 1 day');
}

prints (without the descriptions)

2015-12-27 , Sun, 52
2015-12-28 , Mon, 53\
2015-12-29 , Tue, 53|
2015-12-30 , Wed, 53|
2015-12-31 , Thu, 53 <-- this thursday is in 2015, therefore this is week 53
2016-01-01 , Fri, 53|
2016-01-02 , Sat, 53|
2016-01-03 , Sun, 53/

2016-01-04 , Mon, 01\
2016-01-05 , Tue, 01|
2016-01-06 , Wed, 01|
2016-01-07 , Thu, 01 <-- this is the first thursday in 2016, therefore this is week 1

edit and btw: You might want to switch your project to use the standard php date/time parser:

<?php
$dt = new DateTime('2016W01'); echo $dt->format('Y-m-d, D, W'), "\r\n";
$dt = new DateTime('2016W02'); echo $dt->format('Y-m-d, D, W'), "\r\n";

prints

2016-01-04, Mon, 01
2016-01-11, Mon, 02
VolkerK
  • 95,432
  • 20
  • 163
  • 226
  • Hi and thanks! So, actually there is a week 01 for 2016? Sorry this might be obvious, but the results made me confused.. – marcmueller Dec 17 '15 at 09:37
  • Yes, every year has a week 1 and that's the week containing the first thursday of that year. – VolkerK Dec 17 '15 at 09:53
0

The Week starts from 01 on 1st January only. But in this case 1st January is in week 53 so it will skip the week 01 and show you as week 02 for 4-10 JAN.

munmun poddar
  • 107
  • 10