Edit report at https://bugs.php.net/bug.php?id=63940&edit=1
ID: 63940
Comment by: carlos dot jimenez dot guirao at gmail dot com
Reported by: carlos dot jimene dot guirao at gmail dot com
Summary: DateTime->modify(last day of ) not working properly
for December
Status: Open
Type: Bug
Package: Date/time related
Operating System: Ubuntu 10.04.4 LTS
PHP Version: 5.3.20
Block user comment: N
Private report: N
New Comment:
In php version PHP 5.4.6
OS: Ubuntu 12.10
Same script outputs:
string(10) "2012-12-31"
string(10) "2012-12-31"
Results working as expected.
Previous Comments:
------------------------------------------------------------------------
[2013-01-08 15:32:24] carlos dot jimene dot guirao at gmail dot com
Description:
------------
Working with DateTime object as shown on manual.
If you modify a DateTime object using this relative format "last day of
December Year" it fails giving instead last day of next January.
It seems that it was corrected when used in DateTime Constructor instead. So if
you create DateTime object using same string in constructor it works.
Test script:
---------------
$datetime = new DateTime();
$datetime->modify('last day of December 2012');
var_dump($datetime->format('Y-m-d'));
$anotherdt = new DateTime('last day of December 2012');
var_dump($anotherdt->format('Y-m-d'));
Expected result:
----------------
string(10) "2012-12-31"
string(10) "2012-12-31"
Actual result:
--------------
string(10) "2013-01-31"
string(10) "2012-12-31"
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=63940&edit=1