5

这是我的代码:

$timezone = new \DateTimeZone('America/New_York');
    $date1 = new \DateTime (date("Y:m:d H:i:s", time()), $timezone);
    $date1->add(new \DateInterval ("PT24H"));
    echo $date1->format('Y-m-d h:s:m');

这应该将当前时间增加 24 小时。问题是,每次我刷新页面时,我都会得到不同的结果。我指的不是人们预期的几秒钟,而是很多分钟。有些高于实际时间,有些低于实际时间。

现在晚上 9:51 进行三次刷新,结果如下:2013-03-26 09:09:03、2013-03-26 09:17:03、2013-03-26 09:30:03

为什么我看不到实时?到底是怎么回事?

谢谢您的帮助!

4

1 回答 1

8

错误在您的最后一个 echo 语句中

echo $date1->format('Y-m-d h:s:m');

将其更改为:

echo $date1->format('Y-m-d h:i:s');

每次刷新都会刷新您设置为秒而不是分钟的中间值,因此例如每 3 秒更新一次显示为 3 分钟更新。此外,您的分钟显示为 m,这是月份数字的日期格式,因此它显示为 3 表示三月的数字表示。我已将其更改为 i 以表示分钟。

我得到了您的代码,上面的代码在伦敦工作,代码如下:

$date1 = new DateTime('America/New_York');
$date1->add(new DateInterval("PT24H"));
echo $date1->format('Y-m-d h:i:s');

现在显示 3 月 26 日晚上 10:07,比纽约当前时间晚 24 小时

于 2013-03-26T01:55:31.723 回答