我试图仅显示某些内容或某些日子 我在数据库中有开始时间,开始日期,结束时间和结束日期,这样当从数据库中提取数据时,应检查此时间和日期并相应地显示内容
我试过的代码
$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'];
}
但它每次都无法显示内容
请帮帮我
提前致谢
答案 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或其他什么东西会让它无法将其转换为一时间