2017-12-14 14 views
0

私は様々な期間(オープンとクローズタイム)のレストランを含むレールアプリを持っています。たとえば、レストランでは月曜日(午前8時〜午後2時、午後3時30分〜午前12時)に2つの期間があります。レール時間が真夜中を超えて

私が抱えている問題は、開封期と関係がある。私はこれらのオープンおよびクローズ属性をデータベースに保存しています。また、レストランが現在持っている時間を使ってレストランが開いているかどうかをチェックするインスタンスメソッドがあります。

問題は、レストランが閉じていると表示されている真夜中(午前12時)まで開いているレストランがある場合です。たとえば、レストランの時間帯が午後6時〜午後12時などの場合、現在の時刻(Time.now>午後6時とTime.now <午前12時)と比較するたびに偽となり、レストランは近くに表示されますそれはそうではありません。

誰もこのようなシナリオに遭遇しましたか?私はさまざまな投稿のように、代わりに期間を保存することを考えていましたが、真夜中やそれ以降の時間を補いながら実際にそうする方法を理解することはできませんでした。

ご協力いただきありがとうございます。

+0

、 '<= 11:59:59 pm?あなたは計算が1秒間違っていると思います。 – jvillian

答えて

0

使用Time.now.hour

例えば午後6時などの時間期間の間 - ( - 午後、午後3:30 - 午前8時午前12時)のため午前12時

Time.now.hour >= 18 

代わり<12 am` `の

hour = Time.now.hour 
minutes = Time.now.minutes 
(hour >=8 && hour <= 13) || ((hour == 15 && minutes >= 30) || hour > 15) 
関連する問題