Bug #60340 [Com]: DateTime. The problem of determining the relative dates, by the command last
| From: | marcingronowski at gmail dot com | Date: | Sun, 20 Nov 2011 00:22:26 +0000 |
| Subject: | Bug #60340 [Com]: DateTime. The problem of determining the relative dates, by the command last | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-165370@lists.php.net to get a copy of this message | ||
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:
@ salathe@php.net
You're right. I'm sorry. It's my fault.
Previous Comments:
------------------------------------------------------------------------
[2011-11-19 21:33:39] salathe@php.net
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