2012-07-17 61 views
0

我有日期的格式爲:比較日期,只顯示未來事件:PHP

June 22, 2012 

使用PHP的日期功能我得到的日期,像這樣:

​​

如果使用聲明我比較兩個希望消除所有已經通過的日期:

if(date("F j, Y") > $date) 

然而,它的工作,但離開除了一個日期:

February 14, 2012 

有人可以解釋爲什麼或告訴我一個更好的方法來做到這一點?

+0

http://stackoverflow.com/questions/7038484/how-to-compare-two-dates-in-php-and-echo-newer-one?lq=1 – 2012-07-17 04:51:26

+1

不要比較字符串,你會因爲F在字母D之後出現,所以「2012年2月」這樣的愚蠢行爲會比「2012年12月」更大。比較原生的PHP時間戳 - 簡單的整數。 – 2012-07-17 04:52:48

回答

5

date()返回一個字符串,所以在你的情況下,它只返回大於字符串「2012年6月22日」的字符串。嘗試在你的約會使用strtotime()()調用,e.g

$today = strtotime($todays_date); 

這將需要()的返回日期時間字符串,並將其轉換爲UNIX時間戳,你可以用它來比較日期。

+0

非常感謝!它令人驚訝,當你疲倦的時候你會忽略它 – 2012-07-17 05:21:44

+0

很高興幫助....我確切地知道你的意思:) – ply 2012-07-17 05:37:53