2016-07-08 7 views
1

Ich habe eine Ereignisseite auf meiner Website und ich führe eine Ereignisleiste oben in meiner Kopfzeile mit dem neuesten Ereignis. Ich versuche herauszufinden, wie man das richtig schreibt.Wenn das Ereignisdatum geringer als jetzt ist, zeigen Sie foo an. Wenn das Ereignisdatum größer als jetzt ist, zeige Bar

Wenn das Ereignis nicht passiert ist, möchte ich es zeigen. Wenn das Ereignis bereits stattgefunden hat, möchte ich das Ereignis nicht anzeigen.

Code:

<?php //SELECT QUERY... 
    foreach($events->results() as $e): 
$now = "now()"; 
    if($e->event_date <= $now){?> 
     <h1>Show Event</h1> 

<?php } 
    elseif($e->event_date > $now){ ?> 
     <h1>DON'T Show Event</h1> 
<?php 
} 
    endforeach; 

Also im Grunde, wenn das Ereignis Zeitstempel kleiner als oder gleich dem bevorstehenden Ereignis, ich will, es zu zeigen.

Wenn der Zeitstempel des Ereignisses größer als das aktuelle Datum und die Uhrzeit des Ereignisses ist, möchte ich nicht, dass es angezeigt wird.

Datenbanktabelle für Ereignisse. enter image description here

+0

Zeitmarke ist die Standard-Datetime Version oder Unix Timestamp? –

+0

Was ist der Datentyp von event_date in db. –

+0

Welchen Wert in event_date? –

Antwort

4

now() ist mysql-Funktion. In PHP wir den aktuellen Zeitstempel erhalten verwenden time() zu

Es wird als

verwendet
$now = time();// get current timestamp 

Verwendung strtotime() Datum in Zeitstempel verwenden zum Vergleich dann konvertieren

$now = time(); 
foreach ($events->results() as $e): 
    if (strtotime($e->event_date) >= $now) {// check for greater then equal to 
     ?> 
     <h1>Show Event</h1> 
     <?php 
    } else { 
     echo "<h1>DON'T Show Event</h1>"; 
    } 
endforeach; 
+1

Entfernen Sie elseif, es ist nicht erforderlich. –

+0

@Saty Ich habe deinen Weg Schritt für Schritt versucht. Funktioniert aus irgendeinem Grund nicht. Auch in diesem Fall möchte ich, dass zu diesem Zeitpunkt kein Ereignis angezeigt wird, daher wäre die else if-Anweisung oder nur eine else-Anweisung erforderlich. Nicht sicher, was der Deal ist. Dein Code sieht solide aus ..? Könnten es die zwei Zeitstempel in meiner Datenbank sein? – echo

+0

@echo Überprüfen Sie aktualisierte Antwort für else-Anweisung für kein Ereignis – Saty

1

Sie sind in der richtigen Richtung, ändern Sie es wie

<?php //SELECT QUERY... 
    foreach($events->results() as $e): 
     $now = date("Y-m-d H:i:s"); 
     if(date("Y-m-d H:i:s", strtotime($e->event_date)) >= $now){ 
      echo "<h1>Show Event</h1>"; 
     }else{ 
      echo "<h1>DON'T Show Event</h1>"; 
     } 
    endforeach; 
    ?> 
+0

Sie versuchen auch Ihr Bestes !! – Saty