2016-05-25 10 views
0

Ich versuche, einige Daten in diesem Format zu durchlaufen: "10. Mai 2016" und sehen, ob heute ist davor oder danach, zum Anzeigen/Verbergen von divs mit diesem Datum verbunden sind.Wie Daten in PHP im Y-m-d-Format zu vergleichen?

Ich habe bisher gesucht und fand nur Fragen, bei denen der Vergleich nur mit numerischen Daten ist, aber was würde für diese Art von Vergleich der richtige Code sein:

$cDate = "May 10, 2016" 
$todayDate = NOW(); // in "May 25, 2016" format 
if ($cDate < $todayDate) { 
    ...more code... 
} 
+1

http://www.php.net/manual/en/class.datetime.php http://carbon.nesbot.com/docs/ (und 'NOW()' ist MySQL, verwendet PHP ' Zeit() '). – ceejayoz

+1

Das liegt daran, dass Datumszeichenfolgen nicht existieren; Sie sind einfach Zeichenfolgen, die wir Menschen als Datum interpretieren, aber sind nichts anderes als Sequenzen von Zeichen auf einem Computer .... deshalb können Sie Datumsfolgen nicht vergleichen, sondern nur numerische Daten –

+1

Es ist nicht für Sie geeignet bitten Sie die Beantworter Ihrer Frage zur Abstimmung. – vascowhite

Antwort

2

Lösung ist einfach mit PHP DateTime() Klasse.

<?php 
    $date = new DateTime('May 30, 2016'); 
    $today = new DateTime(); 

    if($today > $date) { 
     echo "Date was in past"; 
    } else if ($today == $date) { 
     echo "It's now"; 
    } else { 
     echo "Date is in future"; 
    } 
+0

@ NoReceipt4Panda Fertig von meinem Ende;) – Rehmat

2

Wenn Sie kümmern sich nicht über Zeitzonen:

$that = strtotime("May 10, 2016"); 
$now = time(); 
if ($that < $now) { 
    // do your thing 
} 
1

Es ist einfach, mit strtotime()

$cDate = "May 10, 2016"; 
$todayDate = strtotime(date('Y-m-d')); // in "May 25, 2016" format 
if (strtotime($cDate) < $todayDate) { 
    echo 'hi'; 
} 
+0

@ NoReceipt4Panda, Fertig – Mojtaba