2014-03-28 63 views
0

我正在嘗試執行以下操作:使用會話變量$date_from$date_to標記並將它們與這些日期間隔進行比較。這是我到目前爲止有:PHP日和月比較

這是我用的,只有日和月的格式:

$date1 = new DateTime('28-04-2014'); 

$seasonStart = date_format($date1, 'd-m'); 

就拿今天的日期,28-03-2014,並做同樣的事情,它存儲在一個變量和if循環中的條件將是

if (28-03 < 28-04) 
echo "it works" 

但是,這是行不通的。我注意到它只是比較日期而不是月 如果我改變28-03 to 01-08它會工作,這顯然是不正確的。

回答

0

您可以使用簡單的PHP類來操作日期。

爲了便於日期比較:

$date = new simpleDate(); 
echo $date->now()->compare($other_date)->isBefore(); 

您可以檢查教程頁面,更多的例子。 Click here

0

您正在比較字符串(並在您的第二個示例整數),而不是日期。這就是爲什麼你看到你看到的結果。幸運的是,比較日期在PHP中是很容易的,因爲DateTime對象是可比較的。事先不需要格式化。

$date1 = new DateTime('28-04-2014'); 
$date2 = new DateTime(); 
if ($date1 > $date2) { 
    // do something 
} 
+0

這將是最簡單的解決方案,我也試過這個,但是datetime中的「year」部分有點問題。你知道是否有辦法保留DateTime函數但沒有年份? – newPrimitives

+0

年份問題如何?我們可能能夠解決它。 –

+0

那麼如果某人在同一天預訂但明年會發生什麼 $ date2將是28-04-2015,它大於$ date1並且條件不起作用。 – newPrimitives

0

您可以隨時使用unix時間和strtotime函數。

$time1 = strtotime("28 March 2014"); 
$time2 = strtotime("28 February 2014"); 
if($time1 > $time2){ //stuff } 

我不確定這是否是最成功的方法,但我可能會這樣做自己。