Edit report at https://bugs.php.net/bug.php?id=76848&edit=1
ID: 76848
Updated by: girgias@php.net
Reported by: wojciech dot mocek at gmail dot com
Summary: Possible to create Datetime from wrong month day
Status: Open
Type: Bug
Package: Date/time related
Operating System: Linux
PHP Version: 7.3.11
-Assigned To:
+Assigned To: derick
Block user comment: N
Private report: N
New Comment:
Delegating this to Derick as he is the maintainer of the date extension.
Previous Comments:
------------------------------------------------------------------------
[2019-10-25 23:49:02] wojciech dot mocek at gmail dot com
This bug occurs also on PHP 7.3.11.
------------------------------------------------------------------------
[2019-10-25 23:40:42] wojciech dot mocek at gmail dot com
You asked "should both evaluate to the same value, shouldn't they?". So the answer
is: no, they should not.
This is how it was solved in other object language:
$ docker container run --rm -it openjdk jshell
Oct 25, 2019 11:21:53 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
| Welcome to JShell -- Version 13.0.1
| For an introduction type: /help intro
jshell> var dateA = java.time.LocalDate.parse("2018-01-31");jshell> dateA.plusMonths(1)
$2 ==> 2018-02-28
jshell> var dateB = java.time.LocalDate.parse("2018-02-31");
| Exception java.time.format.DateTimeParseException: Text '2018-02-31' could not be
parsed: Invalid date 'FEBRUARY 31'
(...)
Do you agree that PHP DateTime class is class for handling date and time? If yes, then do you agree
that it should behave according to real date&time? If yes, then do we have in our calendar date
'2018-02-31'?
------------------------------------------------------------------------
[2018-11-21 15:10:06] cmb@php.net
Obviously,
new DateTime('2018-01-31 +1 month')
and
new DateTime('2018-02-31')
should both evaluate to the same value, shouldn't they?
------------------------------------------------------------------------
[2018-11-21 15:05:30] wojciech dot mocek at gmail dot com
What is the correlation between your question and reported bug?
------------------------------------------------------------------------
[2018-11-21 12:43:28] cmb@php.net
And how should the following be handled?
new DateTime('2018-01-31 +1 month')
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=76848
--
Edit this bug report at https://bugs.php.net/bug.php?id=76848&edit=1