安排发布-仅在某个时间或将来的任何时间显示某些内容或重复显示


Schedule Post - Displaying Some Content only for Some time or any time in future or Repitative

我试图只显示一些内容一段时间或几天我在数据库中有开始时间、开始日期、结束时间和结束日期,这样当从数据库中提取数据时,应该检查时间和日期,并相应地显示内容

我尝试过的代码

$startDateTime = strtotime($result['StartDate']." ".$result['StartTime']);
$endDateTime = strtotime($result['EndDate']." ".$result['EndTime']);
$now = time();
echo "START : ".$startDateTime;
echo "<br/>END : ".$endDateTime;
echo "<br/>CURRENT : ".$now;
if($now >= $startDateTime && $now <= $endDateTime){
echo $result['content'];
}

但它不起作用——每次都显示内容

请帮助我

提前感谢

输出$result['StartDate']的列表。"$result["StartTime"]我想你会发现它可能会省略前导0,或者会给它作为时间的选择带来麻烦。

与其使用time()函数,不如尝试将'$now'创建为strtotime("now")。

此外,作为调试步骤,它可能会帮助您回显比较,看看它们是否按照您预期的方式进行了评估。

事实上,我只是按原样尝试了你的代码。。。除了我有硬编码的开始和结束日期和时间的值。它起了作用,所以切换到使用strtotime("现在")可能不会有什么不同。

打印出来的值是什么?你没有告诉我们。

所以VoronoiPotato可能是对的。。。您为StartDate/StartTime和EndDate/EndTime存储的值一定有问题。

如果你这样更改程序(增加更多的调试),程序的输出是什么:

$startDateTime = $result['StartDate'] . " " . $result['StartTime'];
$endDateTime = $result['EndDate'] . " " . $result['EndTime'];
$now = time();
echo "START : " . $startDateTime."<br />'n";
echo "END : " . $endDateTime . "<br />'n";
$startDateTime = strtotime($startDateTime);
$endDateTime = strtotime($endDateTime);
echo "Start as time: " . $startDateTime . "<br />'n";
echo "End as time: " . $endDateTime . "<br />'n";
echo "CURRENT : " . $now . "'n";
if (($now >= $startDateTime) && ($now <= $endDateTime)) {
    echo $result['content'];
}