|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #66019 DateTime object does not support short ISO 8601 time format - YYYY-MM-DDTHH
Submitted: 2013-11-02 00:25 UTC Modified: 2021-04-07 12:42 UTC
From: kaldari at gmail dot com Assigned: derick (profile)
Status: Closed Package: Date/time related
PHP Version: 5.5.5 OS: MacOS X
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: kaldari at gmail dot com
New email:
PHP Version: OS:


 [2013-11-02 00:25 UTC] kaldari at gmail dot com
According to ISO 8601, the following is a valid date-time representation:
(representing 2 February 2012, 10:00)

However, PHP throws an error if the minutes are not specified.

Test script:
$tz = new DateTimeZone("Europe/Amsterdam");
$dateObject = new DateTime( '2012-02-02T10', $tz );
echo $dateObject->format( 'j F Y H:i' );

Expected result:
2 February 2012 10:00

Actual result:
Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (2012-02-02T10) at position 11 (1): Unexpected character'


bug66019.patch (last revision 2016-08-07 16:35 UTC by

Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2013-11-03 11:43 UTC]
-Status: Open +Status: Assigned -Assigned To: +Assigned To: derick
 [2016-08-07 16:35 UTC]
The following patch has been added/updated:

Patch Name: bug66019.patch
Revision:   1470587717
 [2016-08-07 16:35 UTC]
-Status: Assigned +Status: Verified
 [2016-08-07 16:35 UTC]
Confirmed: <>.

However, not only YYYY-MM-DDThh is allowed by ISO 8601, but also
hh, and as the date time parser is rather liberal wrt. its input,
also h would make sense. The respective fix is trivial (see
bug66019.patch), but it would now allow some somewhat doubtful
input to be successfully parsed, for instance, '3' (=> 03:00:00)
and '03-03' (=> 03:00:00-03:00). Not sure, if that's desirable.

Derick, what do you think?
 [2017-10-24 05:24 UTC]
-Status: Verified +Status: Assigned
 [2021-04-07 09:34 UTC]
@cmb, your patch breaks:

derick@gargleblaster:~/dev/derickr-timelib$ ./tests/tester-parse-string "14/10/2006"
E=2 TS: 0 | -99999-10-20 14:00:00
Errors found while parsing '14/10/2006'
E Unexpected character @ pos 2 (char=[/])
E Double time specification @ pos 8 (char=[0])

derick@gargleblaster:~/dev/derickr-timelib$ ./tests/tester-parse-string "13/10/2006"
E=2 TS: 0 | -99999-10-20 13:00:00
Errors found while parsing '13/10/2006'
E Unexpected character @ pos 2 (char=[/])
E Double time specification @ pos 8 (char=[0])

So unless you're really invested in this, I'm likely to close this.
 [2021-04-07 12:42 UTC]
Ah, yes, this patch is way to general; it doesn't make sense to
support stand alone hours.  Still, I think the date parser should
support ISO 8061 YYYY-MM-DDTHH.  I submitted a draft PR:
 [2022-05-20 12:25 UTC]
Automatic comment on behalf of derickr
Log: Fixed bug #66019 (DateTime object does not support short ISO 8601 time format - YYYY-MM-DDTHH)
 [2022-05-20 12:25 UTC]
-Status: Assigned +Status: Closed
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Mon Sep 26 03:05:53 2022 UTC