服务器上设置请求时间会发生什么?是否考虑了服务器配置的时区?
我问,因为我需要知道,如果我有一个网站将时区设置为网站范围的变量,并且我将某些内容与$_SERVER['REQUEST_TIME']
进行比较以了解它是否已过期,我就是不确定时区是否可能不匹配。
答案 0 :(得分:10)
$_SERVER
的{{1}}是一个Unix时间戳。这应该是足够的信息,但如果不是:Unix时间戳总是基于UTC。
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之后。