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


PHP is not returning the correct time DateTime class

我已经尝试解决这个问题几个小时了,我似乎根本无法解决这个问题,我试图找到一个解决方案,所以也许有人会帮助我

下面是我的代码片段:
$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
所有这些都完成后,重新检查你的日期,一切都应该是有序的!

这对我来说是预期的:

$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 DateTimeZonenew 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

如何修复:

假设您正在运行CentOS 6.5 64位

yum install ntp -y
service ntpd start
所有这些都完成后,重新检查你的日期,一切都应该是有序的!