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

时间:2012-08-06 12:26:20

标签: php mysql

我试图仅显示某些内容或某些日子 我在数据库中有开始时间,开始日期,结束时间和结束日期,这样当从数据库中提取数据时,应检查此时间和日期并相应地显示内容

我试过的代码     

$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'];

}

但它每次都无法显示内容

请帮帮我

提前致谢

2 个答案:

答案 0 :(得分: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'];
}

答案 1 :(得分:0)

输出你的$ result ['StartDate']的列表。“”。$ result ['StartTime']我认为你会发现它可能会导致领先的0或其他什么东西会让它无法将其转换为一时间