2016-06-15 10 views
-1

私は店舗の開閉時間を使用している店舗サイトを持っています。開店時間が午前08時で、営業時間が午後09時であるようにうまくいきます。 開店時間が午前11時30分、閉店時間が午前04時であれば動作しません。 私のコードは以下の通りです:PHPの現在時刻とmysqlテーブルの時刻

<?php 
date_default_timezone_set("Asia/Kuwait"); 
$rest_oc = mysql_query("SELECT * FROM timing WHERE sr_id = '".$rm_id."'"); 
while ($oc = mysql_fetch_array($rest_oc)) { 
    $timo = $oc['open']; 
    $timc = $oc['close']; 
    $ptime = date("h:i a"); 

    $date1 = DateTime::createFromFormat('H:i a', $ptime); 
    $date2 = DateTime::createFromFormat('H:i a', $timo); 
    $date3 = DateTime::createFromFormat('H:i a', $timc); 

    if ($date3 < $date2) { 
    $date3->add(new DateInterval('P1D')); 
    } 

    if ($date1 >= $date2 && $date1 <= $date3) { 
    ?> 
     <div class="tagR"> 
      <img src="images/openN.png" alt=""/> 
     </div> 
<?php }else{ ?> 
     <div class="tagR"> 
      <img src="images/closed.png" alt=""/> 
     </div> 
<?php } } ?> 
+0

それは日付が変わらないので、午前4時はいつも午前11時30分前である。オープン前にクローズがあるかどうかを確認したい場合は、クローズに1日追加します。 – aynber

答えて

1

まあ午前4時は、使用しているすべての時間であれば11:30前に明らかであるため、動作しないこと。あなたの条件の前にこれを加えなさい

if ($date1 < $date2) { 
    $date2->sub(new DateInterval('P1D')); 
} else { 
    if ($date3 < $date2) { 
     $date3->add(new DateInterval('P1D')); 
    } 
} 
+0

それはうまくいきましたが、突然その機能が停止しました。私は自分のコードを更新しました。確認してください... @georaldc –

+0

正確には動作しません。 if条件が再び満たされないのですか? – georaldc

+0

はいそれが閉鎖されていることを示しています...開いている時間は午前11時30分と閉鎖時間は午前3時30分です..しかし、更新されたコードごとに私はまだ閉鎖して表示されます –

関連する問題