我正在尝试检查日期是否已过,或者是否是未来。如果end_date已经过去,那么我不希望它显示。 end_date是一个MySQL时间戳。现在所有新闻文章都显示,即使他们的end_date已经过去了。这是我用来检查日期是否过去的代码:
function dateExp( $timestamp ){
$exp = intval($timestamp);
$today = intval( time() );
if( $exp > today ) return true;
else return false;
}
以下是获取文章并显示文章的代码:
$qry = "select *
from news
where display='Y'
order by priority, date_added, title";
$news = _execQry($qry);
foreach( $news as $n )
{
if( dateExp($n['end_date']) ){
echo '<h3>'. $n['title'] .'</h3>';
echo '<p>'. $n['story'] ;
echo '<br />Added on '. dateFormat($n['date_added']) .'</p><br />';
}
}
答案 0 :(得分:4)
我建议你修改查询中的记录,使你编程的数据要处理的数据更少。
$ qry =“选择*
来自新闻
其中display ='Y'
和end_date&gt; = CurDate()
按优先顺序排列,date_added,title“;
答案 1 :(得分:1)
问题在于dateExp函数。您错过了 $ 符号。因为PHP将今天解释为常量而不是 $ today ,这是您用来保存当前时间戳的变量。
应该是这样的:
function dateExp( $timestamp )
{
$exp = intval($timestamp);
$today = intval( time() );
if( $exp > $today ) return true;
else return false;
}
事实上,你可以更简化一下这个功能:
function dateExp($timestamp)
{
$timestamp = intval($timestamp); // make sure we're dealing wit 'numbers'
return ($timestamp > time()); // return TRUE if $timestamp is in the future
}