我使用以下代码在特定时间显示我的页面内容:
<?php
$dt = new DateTime();
$dt->setTimezone(new DateTimeZone('Asia/Jerusalem'));
echo $dt->format('Y-m-d H:i:s');
if ($dt > new DateTime("2015-09-05 01:15:00"))
{
include 'open.php';
}
else {
include 'closed.php';
}
?>
我面临的唯一问题是当我在真实服务器(ipage)上传页面时。 意思是,例如现在的时间是凌晨2:49,代码正确地回显时间,但是当我上传页面时,它仍然显示正确的时间,但是在凌晨1:00或凌晨2:30之后不显示页面或者凌晨2:48。
在本地服务器上运行良好,t -1校正因子 例如,如果我想在13:00打开页面,我将条件设置为大于12:00。
导致这种情况的原因是什么?如何一劳永逸地解决这个时差问题?
答案 0 :(得分:2)
您无法比较像DateTime对象这样的对象。
$ dt&gt;新的DateTime(&#34; 2015-09-05 01:15:00&#34;)
哪些数据相互比较?
与
比较 $ dt-&gt; diff(); (not accurate enough)
(PHP 5> = 5.3.0)
DateTime :: diff - DateTimeImmutable :: diff - DateTimeInterface :: diff - date_diff
返回两个DateTime对象之间的差异
或 $ dt-&gt;格式(&#39; Y-m-d H:i:s&#39;)
2015-09-05 05:00:12 > 2015-09-05 01:15:00
$dt = new DateTime();
$dt2 = new DateTime("2015-09-05 01:15:00");
$dt->setTimezone(new DateTimeZone('Asia/Jerusalem'));
echo $dt->format('Y-m-d H:i:s')." <br />\n";
echo $dt2->format('Y-m-d H:i:s')." <br />\n";
if ($dt->format('Y-m-d H:i:s') > $dt2->format('Y-m-d H:i:s'))
{
include 'open.php';
}
else {
include 'closed.php';
}