9

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

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

4

1 回答 1

12

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

PHP 示例

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

$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"
}

甚至不可能(通过构造时的时间戳)将DateTime对象强制到不同的时区 - 只能在稍后更改时区

于 2013-06-10T16:31:21.407 回答