2014-02-07 78 views
-1

我正在努力解決如何讓PHP告訴我日期是否小於當前日期。我迄今爲止寫的代碼是;試圖瞭解PHP中的日期

<?php 

$test_date="08/02/2012"; 

$todays_date = date("d-m-Y"); 

if ($test_date < $todays_date) 
    { 
    echo "Past"; 
    } 
else 
    { 
    echo "Future"; 
    } 

?> 

但是輸出說未來?任何指導最好的方式來做到這一點,將不勝感激。 - 謝謝

+0

你對'字符串比較'有什麼瞭解? –

+0

@u_mulder我對PHP字符串比較一無所知。 – Naz

回答

2

您應該將日期與strtotime進行比較。
否則,它比較strings,這不是你想要的(在這種情況下意外的結果)。

試試這個

$test_date = "08/02/2012"; 
$todays_date = date("d/m/Y"); 

if (strtotime($test_date) < strtotime($todays_date)) 
{ 
    echo "Past"; 
} 
else 
{ 
    echo "Future"; 
} 

注意您還可以檢查平等

+0

我嘗試過,完全複製粘貼,但它仍然說未來。如果我使用了硬編碼的todays_date,但不是按原樣運行,那麼它工作正常。 – Naz

+0

關於我的例子,您的日期必須以d/m/Y格式定義。否則,它不會如預期的那樣工作 –

+0

嗨賈斯汀,我明白,但問題發生在日期(「d/m/Y」)部分,如果我手動添加數據就沒有問題。 – Naz

1

使用DateTime類,他們是直接的可比性和非常有用的。

$test_date= DateTime::createFromFormat('d/m/y', "08/02/2012"); 
$todays_date = new DateTime(); 

if($test_date < $todays_date){ 
    echo "Past"; 
} else { 
    echo "Future"; 
} 

See it working