2015-09-18 18 views
5

proszę pomóż co jest nie tak z moim kodem. zawsze pokazuje, że dzisiaj jest więcej niż 01.02.2016? gdzie w 2016 roku jest większa niż 2015.Czas dat PHP większy niż dzisiaj

<?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: 02.01.2016 pochodzi z mojej bazy danych

+0

używać znaczników czasu do porównania dat. Struny są wysoce zawodne do tego zadania jak widzieliście. –

Odpowiedz

20

Jesteś nie porównywanie dat. Porównujesz ciągi znaków . W świecie porównań ciągów '09/17/2015 "> '01/02/2016 ', ponieważ' 09 '>' 01 'Musisz umieścić datę w porównywalnym formacie ciągu lub porównać obiekty DateTime, które są porównywalne .

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

Albo

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

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

Demo

+0

jak? przepraszam, nie mam pojęcia, czy moja randka się nie zgadza? – Nixxx27

+0

Dziękujemy! rozwiązuje mój problem. – Nixxx27

+0

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

Powiązane problemy