【问题标题】:How to read http_request date, sent by browser?如何读取浏览器发送的 http_request 日期?
【发布时间】:2019-10-14 22:53:30
【问题描述】:

我需要知道浏览器发出的 http 请求到底是什么时候发送到服务器上的 PHP 程序的。我正在尝试这样做,因为我的程序需要在服务器和客户端之间进行基于时间的同步。

我在研究中看到的是 getallheaders() 函数,它将返回所有 http-request 标头,但里面从来没有日期/时间。我的代码看起来

<?php

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

结果如下:

Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

如您所见,标题中没有date。如何使用 PHP 检索 http 请求的date

【问题讨论】:

  • 一切都在$_SERVER

标签: php http httprequest


【解决方案1】:

试试看:)

<?php

$timestamp = $_SERVER['REQUEST_TIME']; 
$TimeRequest = gmdate("Y-m-d\TH:i:s", $timestamp); // convert Unix time :)

echo "Request sent at time : ".$TimeRequest;
?>

【讨论】:

  • 但是$_SERVER['REQUEST_TIME'];不是指服务器收到请求的时间吗?事实上,我需要发送的时间。
【解决方案2】:

来自 PHP $_SERVER doc

'REQUEST_TIME' 请求开始的时间戳。自 PHP 5.1.0 起可用。

'REQUEST_TIME_FLOAT' 请求开始的时间戳,精度为微秒。自 PHP 5.4.0 起可用。

【讨论】:

  • 感谢您的建议,但$_SERVER 指的是服务器的时间,而不是浏览器的时间。我需要查看浏览器发送请求的时间,而不是服务器接收请求的时间。
猜你喜欢
  • 2019-03-22
  • 2014-04-13
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
相关资源
最近更新 更多