2015-09-18 16 views
5

請幫我的代碼錯了什麼。它總是表明今天比01/02/2016更大?其中,在2016年大於2015年PHP的日期時間比今天更長

<?php 
$date_now = date("m/d/Y"); 

$date=date_create("01/02/2016"); 
$date_convert = date_format($date,"m/d/Y"); 

if ($date_now > $date_convert) { 
     echo 'greater than'; 
    }else{ 
     echo 'Less than'; 
    } 

P.S:2016年1月2日從我的數據庫

+0

使用時間戳來比較日期。字符串是因爲你已經看到,任務非常不可靠。 –

回答

20

未來您是不是比較日期。您正在比較字符串。在字符串比較的世界中,'09/17/2015'> '01/02/2016'因爲'09'>'01'。您需要將日期以可比較的字符串格式進行比較或比較可比較的DateTime對象。

<?php 
$date_now = date("Y-m-d"); // this format is string comparable 

if ($date_now > '2016-01-02') { 
     echo 'greater than'; 
    }else{ 
     echo 'Less than'; 
    } 

Demo

或者

<?php 
$date_now = new DateTime(); 
$date2 = new DateTime("01/02/2016"); 

if ($date_now > $date2) { 
     echo 'greater than'; 
    }else{ 
     echo 'Less than'; 
    } 

Demo

+0

怎麼樣?對不起,我沒有線索,是我的日期轉換錯了嗎? – Nixxx27

+0

謝謝!它解決了我的問題。 – Nixxx27

+0

$ date_now = new DateTime(); $ sql =「UPDATE jrf_tbl SET strifoverdue ='no'WHERE strduedate>'$ date_now'」; – Nixxx27