echo date_default_timezone_get(); // PRC
echo date("Y-m-d\TH:i:s\Z",time()) //2017-12-11T11:43:53Z
这段代码和下边代码输出时间一致
$now = new \DateTime();
$now->setTimezone(new \DateTimeZone('UTC'));
echo $now->format("Y-m-d\TH:i:s\Z"); //2017-12-11T11:43:53Z
那么 $now->setTimezone(new DateTimeZone('UTC')); 设置无效?
在线上服务器 运行是正常的 UTC时间差8小时。 在docker中运行输出结果就一至。对比了php.ini 设置,都一致。
server1:
date/time support => enabled
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => PRC
Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => PRC => PRC
server2:
date/time support => enabled
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => PRC
Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => PRC => PRC
============ 补充,系统时间======
server1:
[root@60d882aec15f /]# timedatectl
Failed to create bus connection: No such file or directory
[root@60d882aec15f /]# date
Mon Dec 11 12:02:29 CST 2017
[root@60d882aec15f /]# date -u
Mon Dec 11 04:02:31 UTC 2017
server2:
[root@iZ8vbai4lhy4q1u5qhbenwZ ~]# timedatectl
Local time: Mon 2017-12-11 12:18:47 CST
Universal time: Mon 2017-12-11 04:18:47 UTC
RTC time: Mon 2017-12-11 12:18:47
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: yes
RTC in local TZ: yes
DST active: n/a
php.ini配置文件里面你修改了没啊