【发布时间】:2014-02-28 14:46:06
【问题描述】:
我正在尝试比较两个 d/m/y 类型的日期字符串,但似乎比较该类型的日期不起作用。本来想用DateTime PHP的函数,但一开始想了解一下为什么上面的脚本不起作用。
代码如下:
public function listActiveNews(){
$today = strtotime(date('d/m/Y'));
$db = mysql_init();
$sql = "SELECT * FROM ph_news WHERE newActive = 1";
$prq = $db->prepare($sql);
$prq->execute();
foreach($prq->fetchAll(PDO::FETCH_ASSOC) as $fetch){
$dateFrom = strtotime($fetch['newsDateFrom']);
$dateUntil = strtotime($fetch['newsDateUntil']);
if ( ($today >= $dateFrom) && ($today <= $dateUntil) ){
print date('d/m/Y') . " >= " . $fetch['newsDateFrom'] .
" && " . date('d/m/Y') . " <= " .
$fetch['newsDateUntil'] ."<br>" ;
print $fetch['Title'];
}
}
}
我得到了这个结果,但我不明白为什么这些日期的比较在 if 子句中返回 TRUE。
输出:
28/02/2014 >= 20/03/2014 && 28/02/2014 标题
以下是日期值:
date('d/m/Y') = 28/02/2014
$newsDateFrom = 20/03/2014
$dateUntil = 27/02/2014
【问题讨论】:
-
你有你的变量倒退。切换你的
from和until。
标签: php mysql date compare operators