php:DateTime()和time()有不同的时间

时间:2018-03-25 21:37:09

标签: php linux ubuntu vagrant homestead

我正在使用Vagrant box(Homestead),时区设置为欧洲/布鲁塞尔。

我使用命令“date”进入终端的当前时间,返回此值:

  

Sun Mar 25 23:27:40 CEST 2018

在cli& amp; fpm php.ini文件我:

  

date.timezone =“欧洲/布鲁塞尔”

同时运行以下代码: print_r(new DateTime()); 的print_r(时间());

给出以下结果: 对于DateTime():

[
  "date" => "2018-03-25 23:27:43.650908",
  "timezone_type" => 3,
  "timezone" => "Europe/Brussels"
]

时间()的纪元时间戳

1522013263

转换后者给出:

Sun, 25 Mar 2018 21:27:43 GMT

鉴于DateTime的结果,我可以假设php.ini中的时区设置是正确的。但是为什么DateTime和时间之间的时间不同?

2 个答案:

答案 0 :(得分:2)

time()返回Unix时间戳,并始终为GMT:

  

以秒为单位返回以秒为单位测量的当前时间   Unix Epoch(1970年1月1日00:00:00 GMT)。

21:27:43 GMT 等于23:27:43 CEST

如评论中所述:实际上,unix时间戳是UTC,但PHP does not seem to make much of a difference。不幸的是,文档对此并不十分启发。

答案 1 :(得分:2)

我自己对PHP不太熟悉,但是对于时间()我看到了GMT。 GMT是您正在使用的时区,还是UTC(或其他)?它们可能是完全分开的。

If i am incorrect, try reading here

或者有关更多高级信息,Try here.