2013-02-26 228 views
15

我試圖確定一個日期是否是將來或不是未來,利用DateTime對象,但它總是回來正面:PHP - 確定日期是否是在使用DateTime對象

$opening_date = new DateTime($current_store['openingdate']); 
$current_date = new DateTime(); 
$diff = $opening_date->diff($current_date); 
echo $diff->format('%R'); // + 

if($diff->format('%R') == '+' && $current_store['openingdate'] != '0000-00-00' && $current_store['openingdate'] !== NULL) { 
    echo '<img id="openingsoon" src="/img/misc/openingsoon.jpg" alt="OPENING SOON" />'; 
} 

問題它總是正面的,所以圖像顯示它不應該是什麼時候。

我一定在做一些愚蠢的事情,但它是什麼,它讓我瘋了!

回答

49

這比您想象的要容易。你可以做的比較與DateTime對象:

$opening_date = new DateTime($current_store['openingdate']); 
$current_date = new DateTime(); 

if ($opening_date > $current_date) 
{ 
    // not open yet! 
} 
9

您不需要DateTime這個對象。試試這個:

$now = time(); 
if(strtotime($current_store['openingdate']) > $now) { 
    // then it is in the future 
} 
+5

您使用的DateTime因爲它更好*,而不是因爲任何其他原因。 strtotime()的範圍是有限的,但DateTime可以在更廣泛的範圍內工作。 – 2014-06-05 05:28:25

4

你可以用普通的比較運算符比較datetime對象:

$date1 = new DateTime("");             
    $date2 = new DateTime("tomorrow"); 

    if ($date2 > $date1) { 
     echo '$date2 is in the future!'; 
    } 

對於當前的代碼,試試這個:

$opening_date = new DateTime($current_store['openingdate']); 
$current_date = new DateTime(); 

if ($opening_date > $current_date) { 
    echo '<img id="openingsoon" src="/img/misc/openingsoon.jpg" alt="OPENING SOON" />'; 
} 
相關問題