这是我的代码:
$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
为什么我不能获得实时?发生了什么事?
感谢您的帮助!
答案 0 :(得分:8)
错误发生在您的上一个echo语句
中echo $date1->format('Y-m-d h:s:m');
将其更改为:
echo $date1->format('Y-m-d h:i:s');
每次刷新都会刷新您设置为秒而不是分钟的中间值,因此每3秒更新一次显示为3分钟更新。此外,您的分钟显示为m,这是月份数的日期格式,因此它显示为3表示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小时