2014-10-30 76 views
0

不工作我有兩個日期,在這裏和希望與其他日期比較... 這裏的另一日期被稱爲$ date_main和一個名爲$ DATE_TO變量相比...幫助它不工作..比較日期在PHP

<?php 
     $date_f="02-05-2014"; 
     $date_t="02-11-2014"; 

     $date_from=date('d-m-Y', strtotime($date_f)); 
     $date_to=date('d-m-Y', strtotime($date_t)); 

     $date_c="21-7-2014"; 

     $date_main=date('d-m-Y', strtotime($date_c)); 

     if(($date_main<$date_to)) 
     { 
      echo "date_main is less then to<br/>"; 
     } 
    ?> 
+0

U需要使用DateTime類爲此 – DarkBee 2014-10-30 10:37:47

+0

或者只是使用strtotime並比較時間戳值。 – Andy 2014-10-30 10:39:00

回答

2

你必須與時俱進,而不是日期本身比較:

if(strtotime($date_c) < strtotime($date_t)) 
+1

工作完全... http://ideone.com/e.js/bFiSPy – 2014-10-30 10:40:51

1

我不知道爲什麼沒有做這樣的事情?

$date_f = "02-05-2014"; 
$date_t = "02-11-2014"; 

$date_from = DateTime::createFromFormat('d-m-Y', $date_f); 
$date_to = DateTime::createFromFormat('d-m-Y', $date_t); 
$date_main=DateTime::createFromFormat('d-m-Y', '21-07-2014'); 

if (($date_main < $date_to)) { 
    echo "date_main is less then to<br/>"; 
} 

使用對象總是更好。

+0

錯誤:非合式數值遇到 – 2014-10-30 10:47:07

+0

固定的,我忘了轉換成日期時間! :) – 2014-10-30 10:51:30

0
$date_f="02-05-2014"; 
    $date_t="02-11-2014";  
    $date_main=date_create("2014-7-21");  
    $date_to=date_create("2014-11-02");  
    $diff=date_diff($date_main,$date_to); 
    if($diff->format("%R%a")>0)  
     { 
     echo "date_to is greater";  
     }   
     else  
     {   
     echo "date_main is greater"; 
     }