Bug->Req #72425 [Opn]: strtotime() should return false when string contains white space
| From: | cmb@php.net | Date: | Wed, 22 Jun 2016 12:58:42 +0000 |
| Subject: | Bug->Req #72425 [Opn]: strtotime() should return false when string contains white space | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-201798@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=72425&edit=1
ID: 72425
Updated by: cmb@php.net
Reported by: alex at itc77 dot com
-Summary: strtotime() doesn't return false when string
contains white space
+Summary: strtotime() should return false when string contains
white space
Status: Open
-Type: Bug
+Type: Feature/Change Request
Package: Date/time related
PHP Version: 7.0.7
Block user comment: N
Private report: N
New Comment:
Thanks for pointing out the
space time format. It does look like
to be intended to be a self-contained format, as several date
formats *contain* whitespace (for instance, `Textual month and
day`). And actually, that is quite contrary to what the reported
wrote.
> Anyway, interpreting whitespace as a current date looks
> confusing, so this behavior probably deserves changing.
I don't argue that accepting whitespace only as date time format
is rather doubtful, but as often is the case with *changes*, this
change would break BC. This is particularly bad, because the
whitespace has been documented to be allowed. So, in a strict
sense, this is not a bug. I'm changing to feature request.
Previous Comments:
------------------------------------------------------------------------
[2016-06-21 22:10:35] mtanalin at yandex dot ru
To cmb@php.net:
It looks like just common sense that whitespace is not a valid date or time â because itâs
not a date, itâsâ¦, well, whitespace. ;-)
The âDate Formatsâ page [1] does not mention whitespace at all, the âTime
Formatsâ page [2] lists space ([ \t]) as a possible value, but Iâm not sure
it is not about just a non-self-contained _token_ intended to be a part of a full valid date/time
string containing _not_ just whitespace.
Anyway, interpreting whitespace as a current date looks confusing, so this behavior probably
deserves changing.
[1] http://php.net/manual/en/datetime.formats.date.php
[2] http://php.net/manual/en/datetime.formats.time.php
------------------------------------------------------------------------
[2016-06-17 09:35:06] cmb@php.net
> Obviously, invalid should be whitespace-ONLY arguments (in other
> words, becoming empty string after trim()), not arguments
> _containing_ whitespace.
Indeed, thanks. However, where is this documented?
------------------------------------------------------------------------
[2016-06-16 22:46:24] mtanalin at yandex dot ru
To cmb@php.net:
Obviously, invalid should be whitespace-ONLY arguments (in other words, becoming empty string after
trim()), not arguments _containing_ whitespace.
'2016-06-16 11:23' does not become an empty (zero-length) string after trimming
whitespace.
------------------------------------------------------------------------
[2016-06-16 11:34:26] cmb@php.net
I can confirm this behavior: <https://3v4l.org/HNaaY>.
> According to the documentation white space should be treated as
> invalid format and return false.
Where is this documented? That would actually be wrong; consider
strtotime('2016-06-16 11:23')
which is supposed to be acceptable.
------------------------------------------------------------------------
[2016-06-15 20:44:36] alex at itc77 dot com
Please accept this patch:
https://github.com/php/php-src/pull/615
------------------------------------------------------------------------
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=72425
--
Edit this bug report at https://bugs.php.net/bug.php?id=72425&edit=1