如PHP documentation所述,$_SERVER
超全局数组包含两个元素REQUEST_TIME
和REQUEST_TIME_FLOAT
,它们都包含请求开始的时间戳,在不同的精度水平。
我目前正在使用以下代码段来包含服务器在页面页脚中生成页面所花费的时间(以毫秒为单位):
round((microtime(true)-$_SERVER['REQUEST_TIME_FLOAT'])*1000,2);
它会返回一个准确的值(无法真正检查,但它似乎与浏览器开始加载页面的时间相匹配),但我想知道$_SERVER['REQUEST_TIME']
和$_SERVER['REQUEST_TIME_FLOAT']
和{{1}}变量包含时间戳?虽然我认为这些时间戳之间的差异并不重要,但我想知道哪个时刻是时间戳。它是发送请求的时间,收到请求的时间,PHP何时开始解析文档或其他内容?
答案 0 :(得分:3)
大多数情况下,通过检查PHP源代码,它似乎都是从SAPI本身获取初始请求时间的-即从Apache,Nginx,CLI服务器,CGI等获得的。
来源:
$_SERVER['REQUEST_TIME']
definition sapi_get_request_time()
(SG()
代表“ SAPI全局 [value] ”))php_apache_sapi_get_request_time()
sapi_module
定义[1] [2] 答案 1 :(得分:2)
$_SERVER['REQUEST_TIME']
和$_SERVER['REQUEST_TIME_FLOAT']
是您的HTTP服务器收到请求的时间。
关于你的php版本的一点警告: https://bugs.php.net/bug.php?id=64370