Edit report at https://bugs.php.net/bug.php?id=60340&edit=1
ID: 60340
Comment by: marcingronowski at gmail dot com
Reported by: marcingronowski at gmail dot com
Summary: DateTime. The problem of determining the relative
dates, by the command last
Status: Bogus
Type: Bug
Package: Date/time related
Operating System: Windows
PHP Version: 5.3.8
Block user comment: N
Private report: N
New Comment:
@ [email protected]
You're right. I'm sorry. It's my fault.
Previous Comments:
------------------------------------------------------------------------
[2011-11-19 21:33:39] [email protected]
You aren't testing "first/last day of", you're testing "first/last day" which
simply moves the date defined by the absolute parts forward/backward by one
day.
The same applies to your "last monday" test, which should be "last monday of".
All of these behaviours are documented.
------------------------------------------------------------------------
[2011-11-19 18:58:22] marcingronowski at gmail dot com
Description:
------------
Incorrect data is generated by function DateTime::__construct in case of using
the
relative definition of time.
If you use the command "last day of month" the previous month will be returned.
If you use the command "first day of month" the correct month will be returned
and
second day in the month will be returned.
Test script:
---------------
$datea = new DateTime('last day October 2011');
echo $datea->format('Y-F-d');
$dateb = new DateTime('last monday October 2011');
echo $dateb->format('Y-F-d');
$datec = new DateTime('first day October 2011');
echo $datec->format('Y-F-d');
$datec = new DateTime('first day November 2011');
echo $datec->format('Y-F-d');
Expected result:
----------------
2011-October-30
2011-October-30
2011-October-01
2011-November-01
Actual result:
--------------
2011-September-30
2011-September-26
2011-October-02
2011-November-02
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60340&edit=1