|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #47184 DATE_ISO8601 constant and date('c') mismatch
Submitted: 2009-01-21 17:07 UTC Modified: 2009-01-22 15:05 UTC
From: Assigned:
Status: Not a bug Package: Date/time related
PHP Version: 5.2.8 OS: *
Private report: No CVE-ID: None
 [2009-01-21 17:07 UTC]
Following the documentation, DATE_ISO8601 contains this syntax: 2005-08-15T15:52:01+0000

Also, date('c') documents that: ISO 8601 date (added in PHP 5)  	2004-02-12T15:19:21+00:00

We should keep consistency when supporting this spec.

I propose the change then to DATE_ISO8601 constant, defined in ext/date/php_date.c, line 714:

- #define DATE_FORMAT_ISO8601 "Y-m-d\\TH:i:sO"
+ #define DATE_FORMAT_ISO8601 "Y-m-d\\TH:i:sP" 

Reproduce code:
echo DATE_ISO8601 === date('c') ? 'true' : 'false';

Expected result:

Actual result:


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2009-01-22 14:34 UTC]
One is basic and the other is extended format, both are valid.
 [2009-01-22 15:03 UTC]

It's not a case of being short or full format.
It's a matter of consistency.

Even this value is valid: 20090122T130112Z0200

The question here is that both DATE_ISO8601 and date('c') should be consistent, since they refer to the same format.

I am just forwarding what I've heard not only once, but a couple of times from different work teams about this mismatch.

 [2009-01-22 15:05 UTC]
tbh, I don't think we should change this either...
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Jul 20 07:01:28 2024 UTC