2016-04-22 6 views
0
<?php foreach($get_break as $break) : ?> 
    <?php if($current_time >= $break['break_start'] && $current_time <= $break['break_end']) { ?> 
    <ul class="simple-user-list"> 
    <li> 
     <figure class="image rounded"> 
      <img src="assets/images/!sample-user.jpg" alt="Joseph Doe Junior" class="img-circle"> 
     </figure> 
     <span class="title">i'm still exists</span> 
     <span class="message truncate">Lorem ipsum dolor sit.</span> 
    </li> 
</ul> 
<?php } elseif($break['break_type'] == "Additional break") { ?> 
<ul class="simple-user-list"> 
    <li> 
     <figure class="image rounded"> 
      <img src="assets/images/!sample-user.jpg" alt="Joseph Doe Junior" class="img-circle"> 
     </figure> 
     <span class="title">i'm not exists</span> 
     <span class="message truncate">Lorem ipsum dolor sit.</span> 
    </li> 
</ul> 
<?php } ?> 
<?php endforeach ?> 

Ich möchte die Pause basierend auf der Zeit anzeigen. Ich habe Pause Master-Tabelle mit verschiedenen Break-Typ mit Pause Startzeit und Pause Ende Zeit. basierend auf der aktuellen Zeit möchte ich die Pausen anzeigen. Hier verwende ich foreach zum Abrufen von Daten aus der Break-Tabelle und Überprüfen der Bedingung mit if. check Pause mit der aktuellen Zeit. für die aktuelle Zeit, sollte spezifische Pause angezeigt werden. Problem ist, hier, wenn die Bedingung den aktuellen anzeigt, wo im else-Teil, selbst wenn die if-Bedingung wahr ist, es die zusätzliche Pause anzeigt. was soll ich tun? um die einzige Unterbrechung anzuzeigen, wenn für die aktuelle Zeit keine aktuelle Unterbrechung vorhanden ist. es zeigt die zusätzliche Pause an.Verständnis foreach Schleife [mit wenn Bedingung

+0

Können Sie die Werte, die Sie in Ihrer 'foreach' für' $ break ['break_start'] ',' $ break ['break_end'] 'und' $ current_time' erhalten? – hmd

+0

whats ist der Wert von $ current_time? –

+0

@BrijalSavaliya erhält das aktuelle Datum – Rakesh

Antwort

1

Sie können Mathe nicht mit Datumszeichenfolgen ausführen. Verwenden Sie die strtotime() Funktion, um Mathe mit Daten zu tun.

Lesen Sie mehr über es here

Sie so etwas wie dies So erhalten:

if(strtotime($current_time) >= strtotime($break['break_start']) && strtotime($current_time) <= strtotime($break['break_end'])) { 
    //dothis 
} 

strtotime - Analysiert jede in englischer Textdatetime Beschreibung in einen Unix-Zeitstempel

Also, wenn Ihr Datum ist nicht wie auf Englisch eingerichtet (11/12/2016) Verwenden Sie date(), um es in ein gutes Datum zu verwandeln Zeichenfolge.