PHP的$ _SERVER [REQUEST_TIME]是如何设置的?

时间:2013-06-10 16:28:15

标签: php web-applications timezone superglobals

服务器上设置请求时间会发生什么?是否考虑了服务器配置的时区?

我问,因为我需要知道,如果我有一个网站将时区设置为网站范围的变量,并且我将某些内容与$_SERVER['REQUEST_TIME']进行比较以了解它是否已过期,我就是不确定时区是否可能不匹配。

1 个答案:

答案 0 :(得分:10)

$_SERVER的{​​{1}}是一个Unix时间戳。这应该是足够的信息,但如果不是:Unix时间戳总是基于UTC。

PHP示例

DateTime中Unix时间戳的表示法是在数字前加上at符号(“'REQUEST_TIME'”)。然后第二个@参数被加入并默认为“$timeZone”,因为它是一个始终基于UTC的Unix时间戳:

UTC

给出:

$requestTime = new DateTime("@$_SERVER[REQUEST_TIME]");

甚至不可能(通过构建时的时间戳)强制class DateTime#1 (3) { public $date => string(19) "2013-06-23 07:45:44" public $timezone_type => int(1) public $timezone => string(6) "+00:00" } 对象到不同的时区 - 仅在changing the timezone之后。