Saya memiliki aplikasi Rails yang menyertakan restoran dengan berbagai periode waktu (waktu buka dan tutup). Misalnya, sebuah restoran mungkin memiliki dua periode waktu pada hari Senin (08:00 - 14:00, 15:30 - 12:00).

Masalah yang saya alami berkaitan dengan waktu buka dan tutup. Saya menyimpan atribut buka dan tutup ini sebagai tipe waktu di database saya dan saya memiliki metode instan yang memeriksa apakah restoran buka menggunakan waktu saat ini dalam korelasi langsung dengan periode waktu berbeda yang mungkin dimiliki restoran.

Masalahnya adalah ketika saya memiliki restoran yang buka hingga tengah malam (12 pagi) restoran tersebut menunjukkan tutup. Misalnya jika sebuah restoran memiliki periode waktu seperti 6pm - 12am, setiap kali saya membandingkan periode waktu ini dengan waktu saat ini (Time.now > 6pm AND Time.now <12am) itu mengembalikan false dan dengan demikian restoran tampak tutup bahkan meskipun tidak.

Apakah ada yang mengalami skenario seperti ini? Saya berpikir untuk menyimpan durasi sebagai gantinya, seperti yang disarankan oleh berbagai posting, tetapi saya tidak tahu bagaimana melakukannya sambil mengkompensasi waktu tengah malam dan di luar waktu juga.

Bantuan apa pun akan sangat dihargai, terima kasih.

0
Luis 14 Desember 2017, 09:31

1 menjawab

Jawaban Terbaik

Gunakan Time.now.hour

Untuk periode waktu seperti 6pm - 12am

Time.now.hour >= 18

Untuk (08:00 - 14:00, 15:30 - 12:00)

hour = Time.now.hour
minutes = Time.now.minutes 
(hour >=8 && hour <= 13) || ((hour == 15 && minutes >= 30) || hour > 15 )
0
Salil 14 Desember 2017, 07:01