Req #76009 [Opn->Csd]: Cant parse v
| From: | cmb@php.net | Date: | Tue, 26 Oct 2021 11:42:17 +0000 |
| Subject: | Req #76009 [Opn->Csd]: Cant parse v | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-237382@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76009&edit=1
ID: 76009
Updated by: cmb@php.net
Reported by: rparker at kodama dot design
Summary: Cant parse v
-Status: Open
+Status: Closed
Type: Feature/Change Request
Package: Date/time related
Operating System: Windows
PHP Version: 7.1.14
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
*Parsing* v is indeed supported as of PHP 7.3.0, and the
changelog[1] has apparently been fixed in the meantime.
*Formatting* v is actually supported as of PHP 7.0.0[2].
> This really should be removed from the documentation; it's very
> confusing.
It is only confusing, if you assume that *parsing* and
*formatting* support the same specifiers, what you should not.
[1] <https://www.php.net/manual/en/datetime.createfromformat.php#refsect1-datetime.createfromformat-changelog>
[2] <https://3v4l.org/p6h59>
Previous Comments:
------------------------------------------------------------------------
[2020-06-16 16:44:35] jacob at jacobweber dot com
This really should be removed from the documentation; it's very confusing.
------------------------------------------------------------------------
[2019-08-15 06:55:21] php at sirdiego dot de
Hey guys, please update the docs accordingly.
I was trying stuff like a mad man and thought I was slowly going crazy.
I made this test script, that shows that 'v' does NOT work in 7.1 or 7.2 even tho the
documentation states that it was added in 7.0.
Test: https://3v4l.org/qUpGv
Docs: https://www.php.net/manual/en/function.date.php
I will have to work around this problem, because the JavaScript Date.toISOString() method returns a
string exactly like in the test script, would have been nice to be able to just use it like that.
Thanks for all the hard work.
------------------------------------------------------------------------
[2018-06-18 20:52:03] auroraeosrose at gmail dot com
This should be changed into a Documentation bug if v is not present in 7.2 - docs say it was added
in PHP 7.0.0 currently
------------------------------------------------------------------------
[2018-02-26 07:25:41] derick@php.net
Looks like this got missed out when we added 'v' to formatting. However, this has recently
been added to timelib (the library behind the functionality). Parsing 'v' should make it
into PHP 7.3.
------------------------------------------------------------------------
[2018-02-26 01:18:08] rparker at kodama dot design
Description:
------------
\DateTime::createFromFormat('Y-m-d\TH:i:sP',
'2015-06-09T14:00:00-07:00') works but
\DateTime::createFromFormat('Y-m-d\TH:i:s.vP',
'2015-06-09T14:00:00.000-07:00') doesnt.
var_dump(\DateTime::getLastErrors()) outputs array(4) {
["warning_count"]=> int(0) ["warnings"]=> array(0) { }
["error_count"]=> int(2) ["errors"]=> array(2) { [26]=> string(35)
"The format separator does not match" [27]=> string(13) "Trailing data" }
}
It is being triggered by the v option which should be supported.
Test script:
---------------
\DateTime::createFromFormat('Y-m-d\TH:i:s.vP', '2015-06-09T14:00:00.000-07:00');
var_dump(\DateTime::getLastErrors());
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=76009&edit=1