2017-12-14 3 views
0

나는 다양한 기간 (개관 시간과 닫는 시간)이있는 레스토랑을 포함하는 레일 앱이 있습니다. 예를 들어 레스토랑에는 월요일 (오전 8시 - 오후 2시, 오후 3시 30 분 - 오전 12시)에 두 개의 기간이있을 수 있습니다.레일 시간대 자정 너머

내가 겪고있는 문제는 개폐 시간과 관련이 있습니다. 내 데이터베이스에 이러한 열리고 닫는 특성을 시간 형식으로 저장하고 있는데 레스토랑에있는 다른 시간 기간과 직접적인 상관 관계가있는 현재 시간을 사용하여 레스토랑이 열려 있는지 확인하는 인스턴스 메서드가 있습니다.

문제는 레스토랑이 폐쇄 된 것으로 표시되는 자정까지 (12am까지) 열리는 레스토랑이있을 때입니다. 예를 들어, 식당에 오후 6시 - 12시와 같은 시간대가있는 경우이 시간대를 현재 시간 (Time.now> 6pm 및 Time.now < 오전 12시)과 비교할 때마다 false가 반환되어 식당은 거의 비슷하게 보입니다 그래도되지 않습니다.

누구와 같은 시나리오가 발생 했습니까? 대신 다양한 게시물에서 제안한대로 지속 시간을 저장하는 방법에 대해 생각하고 있었지만 실제로 자정을 보정하는 동시에 실제로 수행하는 방법을 파악할 수 없었습니다.

도움을 주시면 감사하겠습니다. 기간 동안

+0

, '<= 11:59:59 pm'은 어떨까요? 계산이 1 초 동안 올바르지 않습니다. – jvillian

답변

0

사용 Time.now.hour

같은 오후 6시 등 -에 대한

Time.now.hour >= 18 

자정 (- 오후 2시, 오후 3시 30분부터 오전 8시까지 자정) 대신`<12 am`의

hour = Time.now.hour 
minutes = Time.now.minutes 
(hour >=8 && hour <= 13) || ((hour == 15 && minutes >= 30) || hour > 15)