PHP没有返回DateTime类的正确时间

时间:2014-05-29 23:16:06

标签: php date datetime timezone

我一直在努力解决这个问题几个小时,我似乎无法弄清楚这几个小时试图寻找解决方案,所以也许有人会帮助我

这是我的代码段:

$phxtime = new \DateTimeZone('America/Phoenix');
$datetime = new \DateTime();
$datetime->setTimezone($phxtime);
echo $datetime->format('Y-m-d H:i:s A');

以上是我上面代码的输出:

2014-05-29 09:13:10 AM

应该是下午4:13:10(我的电脑时间)

如何解决此问题:

假设您正在运行CentOS 6.5 64位

yum install ntp -y

service ntpd start

完成所有这些后,请重新检查您的日期,一切都应该按顺序进行!

2 个答案:

答案 0 :(得分:0)

这对我有用:

$phxtime = new \DateTimeZone('America/Phoenix');
$datetime = new \DateTime();
$datetime->setTimezone($phxtime);
echo $datetime->format('Y-m-d H:i:s');

但结果是在24小时内完成:

2014-05-29 16:20:05

也许您应该使用am / pm以12小时格式编写此内容并删除\new DateTimeZone前面的new DateTime

$phxtime = new DateTimeZone('America/Phoenix');
$datetime = new DateTime();
$datetime->setTimezone($phxtime);
echo $datetime->format('Y-m-d h:i:s a');

输出结果为:

  

2014-05-29 04:29:09 pm

另一个想法是只使用PST作为时区。

$phxtime = new DateTimeZone('PST');
$datetime = new DateTime();
$datetime->setTimezone($phxtime);
echo $datetime->format('Y-m-d h:i:s a');

输出结果为:

  

2014-05-29 04:29:09 pm

答案 1 :(得分:0)

如何解决此问题:

假设您正在运行CentOS 6.5 64位

yum install ntp -y

service ntpd start

完成所有这些后,请重新检查您的日期,一切都应该按顺序进行!