Description:
------------
DateTime::format('W') returns wrong week number when date is 2013-12-30 or 2013-12-31.
Test script:
---------------
$dt = new DateTime;
for ($w = 52; $w <= 54; $w++) {
$dt->setISODate(2013, $w);
print_r($dt);
echo $dt->format('Y W') . "\n\n";
# see this script running on all php versions http://3v4l.org/9aua5
Expected result:
----------------
DateTime Object
[date] => 2013-12-23 11:02:12
[timezone_type] => 3
[timezone] => UTC
2013 52
DateTime Object
[date] => 2013-12-30 11:02:12
[timezone_type] => 3
[timezone] => UTC
2014 01 # or 2013 53, but surely not 2013 01 !!!
DateTime Object
[date] => 2014-01-06 11:02:12
[timezone_type] => 3
[timezone] => UTC
2014 02
Actual result:
--------------
DateTime Object
[date] => 2013-12-23 11:02:12
[timezone_type] => 3
[timezone] => UTC
2013 52
DateTime Object
[date] => 2013-12-30 11:02:12
[timezone_type] => 3
[timezone] => UTC
2013 01
DateTime Object
[date] => 2014-01-06 11:02:12
[timezone_type] => 3
[timezone] => UTC
2014 02
Patches
Add a Patch
Pull Requests
Add a Pull Request
History