我觉得我很疯狂,因为这很简单。
我电脑上的时间目前是:14:41 当我运行下面的任何代码时,它返回:13:41。
$date = new DateTime();
$date->format('Y-m-d H:i:s') //13:41
date('Y-m-d H:i:s') //13:41
date_default_timezone_get()
返回UTC。
现在我理解为什么它落后一小时(因为我们处于夏令时)但是,是否有一个功能将所有这些考虑在内并返回实际时间?
p.s我希望在这里错过一些明显的东西。
修改: date('Y-m-d H:i:s -- I -- e');
返回2013-09-13 14:15:47 -- 0 -- UTC
。 I
参数不应该返回1吗?
答案 0 :(得分:1)
不要依赖php.ini设置。如果要控制时区,请控制时区:
<?php
$date = new DateTime();
$date->setTimezone(new DateTimeZone('Europe/London'));
$date->format('Y-m-d H:i:s e')
将“欧洲/伦敦”替换为您对“实际时间”的定义。
暂且不说:如果date_default_timezone_get()
返回UTC,那么$date->format()
的输出在具有正确时钟的每台机器上都是相同的。这就是UTC的要点。