Bug #80409 [Ver->Csd]: DateTime::modify() loses time with 'weekday' parameter
| From: | derick@php.net | Date: | Fri, 13 May 2022 13:36:39 +0000 |
| Subject: | Bug #80409 [Ver->Csd]: DateTime::modify() loses time with 'weekday' parameter | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-241489@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80409&edit=1
ID: 80409
Updated by: derick@php.net
Reported by: karol dot piotr dot kolanko at gmail dot com
Summary: DateTime::modify() loses time with 'weekday'
parameter
-Status: Verified
+Status: Closed
Type: Bug
Package: Date/time related
Operating System: Linux
PHP Version: 7.4.12
-Assigned To:
+Assigned To: derick
Block user comment: N
Private report: N
New Comment:
Thank you for your bug report. This issue has already been fixed
in the latest released version of PHP, which you can download at
http://www.php.net/downloads.php
This was fixed in 8.0.10 already: https://www.php.net/ChangeLog-8.php#8.0.10
Previous Comments:
------------------------------------------------------------------------
[2021-01-02 01:13:51] simapple at qq dot com
i think that code means get a datetime after a weekend .
"+1 weekday" works to get next weekday.
i think add syntax "+1 weekend" is better than change "+1 weekday".
------------------------------------------------------------------------
[2020-11-24 16:11:20] cmb@php.net
I just learned that "weekday" refers to Mon to Fri, so yes, this
looks like a bug.
------------------------------------------------------------------------
[2020-11-24 14:20:39] cmb@php.net
For reference: <https://3v4l.org/m0UbY>
According to the manual this is supposed to work[1], but I have no
idea what "+1 weekday" is supposed to do.
[1] <https://www.php.net/manual/en/datetime.formats.relative.php>
------------------------------------------------------------------------
[2020-11-24 10:05:28] karol dot piotr dot kolanko at gmail dot com
Description:
------------
DateTime::modify() with parametrem 'weekday' loses time value.
Also date() function.
Test script:
---------------
<?php
$date = '2020-11-27 12:33:00';
echo date('Y-m-d H:i:s', strtotime($date.' +1 day'));
// Correct: 2020-11-28 12:33:00
echo date('Y-m-d H:i:s', strtotime($date.' +1 Weekday'));
// Uncorrect, lost time: 2020-11-30 00:00:00
$date1 = new DateTime($date);
$date2 = new DateTime($date);
$date2->modify('+1 day');
echo $date2->format('Y-m-d H:i:s');
// Correct: 2020-11-28 12:33:00
$date1->modify('+1 weekday');
echo $date1->format('Y-m-d H:i:s');
// Uncorrect, lost time: 2020-11-30 00:00:00
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80409&edit=1