2017-02-13 16 views
0
сравнение

времени не работает, если прошло динамичноDateTime сравнение не работает 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;} 

После работы, если жестко закодированные

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

где ми пойдет не так

+0

$ открыт не будет 1 в этих примерах –

+0

его всегда «1», если первый из них не используется жёстко – hir

ответ

1

в первую очередь вы используете строки сравнить время. Преобразуйте в timestamp с помощью strtotime (http://php.net/manual/en/function.strtotime.php) или mktime (http://php.net/manual/en/function.mktime.php) или используйте класс DateTime (http://php.net/manual/en/class.datetime.php). При сравнении строк они не сравниваются как время, а как последовательности символов.

+0

может у обеспечить работающий пример – hir

+0

У вас будет много примеров на страницах PHP вручную, просто прокрутить вниз. – 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 только используя формат времени (H: i) – hir

+0

конвертировать время в секунды, а затем сравнить два раза использовать strtotime. – user123

+0

проверить это http://phpfiddle.org/lite/code/9cbec4dcfbe6c8e018cc – user123