PHP 在启动过程中的什么时候设置 REQUEST_TIME 变量

aku*_*kas 5 php time superglobals

正如PHP 文档中所述,$_SERVER超全局数组包含两个元素REQUEST_TIMEREQUEST_TIME_FLOAT,这两个元素都包含不同精度级别的请求开始的时间戳。

我当前正在使用以下代码片段来包含服务器在页面页脚中生成页面所需的时间(以毫秒为单位):

round((microtime(true)-$_SERVER['REQUEST_TIME_FLOAT'])*1000,2);
Run Code Online (Sandbox Code Playgroud)

它返回一个准确的值(无法真正检查,但它似乎与浏览器开始加载页面所需的时间相匹配),但我想知道 和 变量包含$_SERVER['REQUEST_TIME']时间戳$_SERVER['REQUEST_TIME_FLOAT']的确切时刻?虽然我认为这些时间戳之间的差异并不显着,但我想知道时间戳是在哪个时刻拍摄的。是发送请求的时间、收到请求的时间、PHP 开始解析文档的时间还是其他时间?

igo*_*s07 5

通过检查 PHP 源代码,大多数情况下它似乎从 SAPI 本身获取初始请求时间 - 意思是来自 Apache、Nginx、CLI 服务器、CGI...等。

资料来源:


小智 2

$_SERVER['REQUEST_TIME']$_SERVER['REQUEST_TIME_FLOAT']是 HTTP 服务器收到请求的时间。

关于您的 php 版本的一点警告: https://bugs.php.net/bug.php ?id=64370