Bug #60565 [Opn->Bgs]: $_SERVER['REQUEST_TIME'] is now a float but lacks a digit in Apache2 SAPI
| From: | derick@php.net | Date: | Mon, 19 Dec 2011 17:45:55 +0000 |
| Subject: | Bug #60565 [Opn->Bgs]: $_SERVER['REQUEST_TIME'] is now a float but lacks a digit in Apache2 SAPI | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-165974@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=60565&edit=1
ID: 60565
Updated by: derick@php.net
Reported by: lolautruche at gmail dot com
Summary: $_SERVER['REQUEST_TIME'] is now a float but lacks a
digit in Apache2 SAPI
-Status: Open
+Status: Bogus
Type: Bug
Package: Apache2 related
Operating System: Mac OS X 10.7.2 (Lion)
PHP Version: 5.4SVN-2011-12-19 (snap)
Block user comment: N
Private report: N
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
With 4 digits it also doesn't get parsed properly... as it will see those 4 digits as a year.
You just shouldn't pass a float as a timestamp, as timestamps in PHP are integer seconds since
the epoch. This is not a bug in PHP.
Previous Comments:
------------------------------------------------------------------------
[2011-12-19 17:09:46] lolautruche at gmail dot com
Description:
------------
As of PHP 5.4, $_SERVER['REQUEST_TIME'] is no longer an int, but a float.
However, using Apache 2 SAPI, this server variable only have 3 decimal digits.
This make DateTime::__construct() throw an exception :
Fatal error: Uncaught exception 'Exception' with message
'DateTime::__construct(): Failed to parse time string (@1324314320.916) at
position 12 (9): Unexpected character' in /Users/lolautruche/workspace/test.php
on line 3
As a comparison, FPM and built-in server defines 4 decimal digits, which is
valid.
This might affect Apache 1 SAPI as well.
This also might be related to #55733
Test script:
---------------
<?php
var_dump( $_SERVER['REQUEST_TIME'] ); // Displays a float with 3 decimal digits with
Apache2, 4 with FPM/built-in server
$date = new DateTime( '@' . $_SERVER['REQUEST_TIME'] );
var_dump( $date );
Expected result:
----------------
$_SERVER['REQUEST_TIME'] should always have 4 decimal digits.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60565&edit=1