我正在使用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和时间之间的时间不同?
答案 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.