Bug #63227 [Ver->Csd]: strtotime - weekday in a month where that weekday was the first day adds 1 week
| From: | derick@php.net | Date: | Fri, 13 May 2022 13:47:01 +0000 |
| Subject: | Bug #63227 [Ver->Csd]: strtotime - weekday in a month where that weekday was the first day adds 1 week | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-241494@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=63227&edit=1
ID: 63227
Updated by: derick@php.net
Reported by: helgeson dot b at gmail dot com
Summary: strtotime - weekday in a month where that weekday
was the first day adds 1 week
-Status: Verified
+Status: Closed
Type: Bug
Package: Date/time related
Operating System: *
PHP Version: 7.0.1
-Assigned To:
+Assigned To: derick
Block user comment: N
Private report: N
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
This is expected, and documented in the second note at https://www.php.net/manual/en/datetime.formats.relative.php:
2. "number dayname" does not advance to another day. (Example: "1 wednesday july
23rd, 2008" means "2008-07-23").
4. "ordinal dayname" does advance to another day. (Example "first wednesday july
23rd, 2008" means "2008-07-30").
$ php
<?php
echo date('Y-m-d', strtotime("second monday october 2012")), "\n";
echo date('Y-m-d', strtotime("2 monday october 2012")), "\n";
?>
2012-10-15
2012-10-08
Previous Comments:
------------------------------------------------------------------------
[2016-02-13 13:43:49] murden at gmail dot com
I've found something that seems to be related? running strtotime on a string like ("2nd
monday") adds a week to the date on months where the requested week day is the 1st day of the
month. Like, will also happen on ("1st Saturday") when the month starts on a Saturday.
------------------------------------------------------------------------
[2015-12-25 12:36:54] cmb@php.net
> Maybe update the documentation to reflect the version the bug
> was actually corrected in?
Bug #43452 has been fixed as of PHP 5.2.7[1], but apparently the
fix only affects week numbers given as proper number[2], but not
as ordinal string[3].
[1] <https://3v4l.org/I4HLT>
[2] <https://3v4l.org/GUdnb>
[3] <https://3v4l.org/LhGLZ>
------------------------------------------------------------------------
[2012-10-05 19:06:50] helgeson dot b at gmail dot com
Description:
------------
---
From manual page: http://www.php.net/function.strtotime#refsect1-
function.strtotime-changelog
---
requesting a given occurrence of a given weekday in a month where that weekday
was
the first day of the month would incorrectly add one week to the returned
timestamp. Although this was reported resolved as of PHP 5.2.7, it still exists
in PHP 5.3.17.
------------------------------------------------------------------------
[2012-10-05 19:04:59] helgeson dot b at gmail dot com
Description:
------------
---
From manual page: http://www.php.net/function.strtotime#refsect1-
function.strtotime-changelog
---
requesting a given occurrence of a given weekday in a month where that weekday was
the first day of the month would incorrectly add one week to the returned
timestamp. Although this was reported resolved as of PHP 5.2.7, it still exists
in PHP 5.3.3.
Maybe update the documentation to reflect the version the bug was actually
corrected in?
Test script:
---------------
$x = strtotime('Second Monday October 2012');
print date('Y-m-d', $x);
Expected result:
----------------
2012-10-8
Actual result:
--------------
2012-10-15
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=63227&edit=1