2017-07-19 51 views
-1

我有一個php代碼,我試圖比較日期和條件是如果當前日期是< = frmdate那麼查詢行必須插入到數組中,而現在發生的問題是它只插入行其是小於,而不是它是equalsto的currentdate ......請幫我解決這個問題,與比較運算符的日期比較

$prodarray= array(); 
while($row =mysqli_fetch_assoc($result)) 
{ 
    $todateExtracted=$row['to_date']; 
    $fromdateExtracted=$row['from_date']; 
    $toDate=strtotime($todateExtracted); 
    $frmDate=strtotime($fromdateExtracted); 

    if($currentdate <= $frmDate) 
    { 
     $prodarray[] = $row; 
    } 
    // $i++; 
} 
+0

格式是什麼日期?如果它不是UNIX,那就是你的問題。所以,如果它是date(),那麼它就是一個字符串。你無法比較字符串。對不起這是我的錯。沒有仔細閱讀。等等...什麼是$ currentdate? – Andreas

+0

你怎麼加載到'$ currentdate' – RiggsFolly

+0

我敢打賭,這是今天的字符串值。由於代碼的其餘部分看起來不錯,但有點笨拙,但確定。問題被標記爲「字符串比較」。想跟我賭@裏格斯:-) – Andreas

回答

0

使用Strtotime() http://php.net/manual/en/function.strtotime.php

$prodarray= array(); 
while($row =mysqli_fetch_assoc($result)) 
{ 
    $todateExtracted=$row['to_date']; 
    $fromdateExtracted=$row['from_date']; 
    $toDate=strtotime($todateExtracted); 
    $frmDate=strtotime($fromdateExtracted); 
    if(strtotime($currentdate) <= strtotime($frmDate)) 
    { 
     $prodarray[] = $row; 
    } 
    // $i++; 
} 
+0

如果你不知道在'$ currentdate'中使用日期的格式有點危險 – RiggsFolly

+1

那麼@RiggsFolly OP沒有提供日期格式。但是,在大多數'正常'情況下,'strtotime()'應該工作。 –