php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #80022 Inconsistency DateTimeInterface::ISO8601
Submitted: 2020-08-26 21:40 UTC Modified: 2020-08-27 06:57 UTC
From: pablo at antweb dot es Assigned:
Status: Closed Package: Date/time related
PHP Version: 7.4.9 OS:
Private report: No CVE-ID: None
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: pablo at antweb dot es
New email:
PHP Version: OS:

 

 [2020-08-26 21:40 UTC] pablo at antweb dot es
Description:
------------
In https://www.php.net/manual/en/class.datetime.php we have 

const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO" ;

The format 0 = Difference to Greenwich time (GMT) without colon between hours and minutes 	Example: +0200 (https://www.php.net/manual/en/datetime.format.php)

But the format('c') full date/time define:
c 	ISO 8601 date (added in PHP 5) 	2004-02-12T15:19:21+00:00

We can to see that the format is inconsistency, format "c" is not equal to Y-m-d\TH:i:sO it would be 2004-02-12T15:19:21+0000




Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-08-26 23:12 UTC] requinix@php.net
-Status: Open +Status: Feedback -Package: Documentation problem +Package: Date/time related
 [2020-08-26 23:12 UTC] requinix@php.net
That's right, 'O' does not have a colon while the timezone offset in 'c' does.

What bug are you reporting?
 [2020-08-27 06:51 UTC] pablo at antweb dot es
-Status: Feedback +Status: Open
 [2020-08-27 06:51 UTC] pablo at antweb dot es
Correctly. 
This is the inconsistency.

Format "c" is a ISO 8601 date and have colon, and DateTimeInterface:ISO8601 = "Y-m-d\TH:i:sO" but does not have colon...
 [2020-08-27 06:55 UTC] requinix@php.net
-Status: Open +Status: Not a bug
 [2020-08-27 06:55 UTC] requinix@php.net
https://www.php.net/manual/en/class.datetimeinterface.php#datetime.constants.types
> Note: This format is not compatible with ISO-8601, but is left this way for
> backward compatibility reasons. Use DateTime::ATOM or DATE_ATOM for
> compatibility with ISO-8601 instead.
 [2020-08-27 06:57 UTC] pablo at antweb dot es
Amazing!
Mystery solved ... thank you.
 [2022-07-22 14:37 UTC] git@php.net
Automatic comment on behalf of derickr
Revision: https://github.com/php/php-src/commit/6ae86c235820aaacfd6f7208fb54cb58212a3fac
Log: Fixed bug #80022: Support ISO 8601 years outside 0000-9999 range better
 [2022-07-22 14:37 UTC] git@php.net
-Status: Not a bug +Status: Closed
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Nov 23 13:01:29 2024 UTC