php DateTimeZone 设置UTC 无效

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
阅读 3.9k
2 个回答

php.ini配置文件里面你修改了没啊

新手上路,请多包涵

楼主后来解决了么

我这边也这样
php.ini修改了 php-fpm / nginx都重启了 还是差8个小时

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题