2015-09-18 33 views
5

bitte helfen, was falsch ist mit meinem Code. es zeigt immer, dass heute größer ist als 01/02/2016? wo im Jahr 2016 größer als 2015.PHP Datum Zeit größer als heute

<?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.01.02 ist aus meiner Datenbank kommenden

+0

Verwenden Zeitstempel Daten zu vergleichen. Strings für diese Aufgabe sehr unzuverlässig sind, wie Sie gesehen haben. –

Antwort

20

Sie sind nicht Vergleich Daten. Sie vergleichen Strings. In der Welt der Zeichenkettenvergleiche '09/17/2015 "> '01/02/2016 ', da' 09 '>' 01 '. Sie müssen entweder Ihr Datum in ein vergleichbares Zeichenkettenformat eingeben oder DateTime-Objekte vergleichen, die vergleichbar sind

.
<?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

Oder

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

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

Demo

+0

wie? Entschuldigung, ich habe keine Ahnung, ist mein Date falsch konvertiert? – Nixxx27

+0

Danke! es löst mein Problem. – Nixxx27

+0

$ date_now = new DateTime(); $ sql = "AKTUALISIERUNG jrf_tbl SET strifoverdue = 'no' WHERE strduedate> '$ date_now'"; – Nixxx27

Verwandte Themen