2017-02-13 3 views
0

Timing Vergleich funktioniert nicht dynamisch wenn bestanden ausDatetime-Vergleich nicht funktioniert PHP

$date = new DateTime(); 
    $date->setTimezone(new DateTimeZone('America/New_York'));         
    $myTime =$date->format('H:i'); 
    $myDay =$date->format('l'); 
if(($s<=$myTime) && ($e>=$myTime||$e=="00:00")) 
    {$open =1;} 

Nach funktioniert, wenn harte

if(("11:30"<="05:39")&&("23:00">="05:39"||"23:00"=="00:00")) 
     {$open =1;} 

codierte wo mi schief gehen

+0

$ geöffnet wird nie 1 in diesen Beispielen sein –

+0

seine „1“ immer wenn erste nicht die harte verwendet wird, codiert – hir

Antwort

1

vor allem sind Sie Strings um die Zeit zu vergleichen. Konvertieren in Zeitstempel mit strtotime (http://php.net/manual/en/function.strtotime.php) oder mktime (http://php.net/manual/en/function.mktime.php) oder verwenden Sie DateTime-Klasse (http://php.net/manual/en/class.datetime.php). Beim Vergleichen von Strings werden sie nicht als Zeit, sondern als Zeichenfolgen verglichen.

+0

kann u Beispiel Arbeits bieten – hir

+0

Sie werden viele Beispiele für die PHP-Handbuch Seiten haben, nur runterscrollen. – Auris

2
// your first date 
$dateA = '2008-03-01 13:34'; 
// your second date 
$dateB = '2007-04-14 15:23'; 
if(strtotime($dateA) > strtotime($dateB)){ 
    // something here 
} 
+0

m nur mit Zeitformat (H: i) – hir

+0

konvertieren Sie die Zeit in Sekunden, dann vergleichen Sie die beiden Zeiten verwenden strtotime. – user123

+0

überprüfen Sie diese http://phpfiddle.org/lite/code/9cbec4dcfbe6c8e018cc – user123