Bug #69786 [Asn->Wfx]: strtotime troubles when subtracting days
Edit report at https://bugs.php.net/bug.php?id=69786&edit=1
ID: 69786
Updated by: derick@php.net
Reported by: s dot rotondo90 at gmail dot com
Summary: strtotime troubles when subtracting days
-Status: Assigned
+Status: Wont fix
Type: Bug
Package: Date/time related
Operating System: Windows Server 2012 R2 Standard
PHP Version: 5.5.25
Assigned To: derick
Block user comment: N
Private report: N
New Comment:
Due to ambiguities in the parser, this can not be fixed without re-doing the full parser
architecture. I am therefore closing this ticket, as there is a reasonable workaround (you can do
'next mon' instead), or with descriptive steps:
$d = (new DateTimeImmutable('2015-06-09'))->modify('next
tue')->modify('-1 day');
echo $d->format('d/m/Y'), "\n";
Previous Comments:
------------------------------------------------------------------------
[2021-10-28 15:29:07] cmb@php.net
Still behaves this way: <https://3v4l.org/9cApu>.
------------------------------------------------------------------------
[2015-06-10 13:10:26] s dot rotondo90 at gmail dot com
I used Tuesday because i saw that this happen when using the same day for the next week.
For example today is Wednesday and if i try this:
echo date('d/m/Y', strtotime('next wed -1 day'));
the output will be: 09/06/2015
The "next wed" seems to be ignored as you said.
But, if i try to do the opposite operation:
echo date('d/m/Y', strtotime('next wed +1 day'));
the output will be: 18/06/2015
This time "next wed" worked well.
------------------------------------------------------------------------
[2015-06-10 12:04:09] cmb@php.net
Hm, I'm not sure if that is supposed to work. Apparently 'next tue'
is simply ignored and only '-1 day' is calculated.
Anyhow, do you really mean 'next tue -1 day' instead of 'next
mon'? Both have, of course, different results on Mondays.
------------------------------------------------------------------------
[2015-06-09 13:57:32] s dot rotondo90 at gmail dot com
Description:
------------
When subtracting days from the next day of the week and today is the same day of the week, strtotime
use the current date instead.
Test script:
---------------
// Today is 09/06/2015
echo date('d/m/Y', strtotime('next tue'));
echo date('d/m/Y', strtotime('next tue -1 day'));
Expected result:
----------------
16/06/2015
15/06/2015
Actual result:
--------------
16/06/2015
08/06/2015
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=69786&edit=1
Thread (6 messages)