Edit report at https://bugs.php.net/bug.php?id=64814&edit=1
ID: 64814
User updated by: marc at weistroff dot net
Reported by: marc at weistroff dot net
Summary: Nano precision is not supported while decoding RFC
3339 formatted date/times.
Status: Open
Type: Bug
Package: Date/time related
PHP Version: 5.5.0RC1
Block user comment: N
Private report: N
New Comment:
I should have precise in the description of the bug that PHP returns an error
when
the number of digits in the "time-secfrac" part is > 8.
Previous Comments:
------------------------------------------------------------------------
[2013-05-10 17:29:15] marc at weistroff dot net
Description:
------------
While trying to parse a RFC3339 datetime, PHP will generate the error "The
timezone could not be found in the database".
It can cause problems with other systems that produce such date/time strings.
As you can see on http://3v4l.org/Bl1Kv, it affects php from version 5.2.0 to
5.5.0.
Test script:
---------------
<?php
date_default_timezone_set('UTC');
var_dump(date_parse("2006-12-12T10:00:00.999999999-04:00"));
?>
Expected result:
----------------
array(15) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.999999999)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(1)
["zone"]=>
int(240)
["is_dst"]=>
bool(false)
}
Actual result:
--------------
array(13) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.99999999)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(1)
["errors"]=>
array(1) {
[0]=>
string(47) "The timezone could not be found in the database"
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(0)
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64814&edit=1