Hello internals!
This is my first time writing here :)
The deprecation was originally added in RFC Deprecations for PHP 8.1, but in a later stage dropped entirely:
https://wiki.php.net/rfc/deprecations_php_8_1?do=diff&rev2%5B0%5D=1623754059&rev2%5B1%5D=1623759320&difftype=sidebyside
It was already discussed on this mailing list:
> List: php-internals
> Subject: Re: [PHP-DEV] [RFC] Deprecations for PHP 8.1
> From: Nikita Popov <nikita.ppv () gmail ! com>
> Date: 2021-06-15 12:23:50
> Message-ID: CAF+90c8wht+LpERZxj-XuY4sAYek8fH9hH_fc+JVZYg_yiAMpw () mail ! gmail ! com
>
> On Tue, Jun 15, 2021 at 12:48 PM Hans Henrik Bergan <divinity76@gmail.com>
> wrote:
>
>> i don't like this part of the RFC:
>
>
>>> There's a number of bug reports related to this. From what I understand,
>>> the core problem here is not that the ISO8601 format is *wrong*, it's just
>>> one of multiple legal ISO-8601 formats. As DateTime formats always refer to
>>> a specific format, not a set of multiple possible ones, there doesn't seem
>>> to be anything actionable here.
>>
>> - this is wrong, DateTime::ISO8601 *is* illegal in ISO8601.
>> quoting ISO8601:2004 section 4.3.3:
>>
>>> For reduced accuracy, decimal or expanded representations of date and
>>> time of day, any of the representations in 4.1.2 (calendar dates), 4.1.3
>>> (ordinal dates) or 4.1.4 (week dates) followed immediately by the time
>>> designator [T] may be combined with any of the representations in 4.2.2.2
>>> through 4.2.2.4 (local time), 4.2.4 (UTC of day) or 4.2.5.2 (local time and
>>> the difference from UTC) provided that (...skipped stuff...) d) the
>>> expression shall either be completely in basic format, in which case the
>>> minimum number of separators necessary for the required expression is used,
>>> or completely in extended format, in which case additional separators shall
>>> be used in accordance with 4.1 and 4.2.
>>
>> DateTime::ISO8601 does exactly what part "d" says isn't legal,
>> 1970-01-01T01:00:00 is extended format, and +0100 is basic format, breaking
>> the "the expression shall either be completely in basic format, in which
>> case the minimum number of separators necessary for the required expression
>> is used, or completely in extended format" -part. " 1970-01-01T01:00:00" is
>> legal extended format but illegal basic format, and "+0100" is legal basic
>> format but illegal extended format, and mixing the 2 isn't legal.
>
> Thanks for the reference. I've removed the mention of DateTime::ISO8601
> from the RFC to make sure that the RFC text doesn't make any incorrect
> statements. Not going to include a deprecation proposal as part of this RFC
> though -- from past discussions, the topic was controversial, so I don't
> want to include it this late in the process.
I do understand why it was dropped entirely from RFC, but I do not understand this part:
> the topic was controversial
Why is that? I did not found any information regarding this one on internals mailing list.
Kind regards.