0
的PARAMS字符串,指示時間範圍沒有存儲在我的數據庫的Rails 3.1測試是否有時間對象是字符串時間範圍
sched = "8:00AM-5:30PM"
開始和結束時間內
client1.sched_start # => 2000-01-01 07:30:00 UTC
client1.sched_end # => 2000-01-01 17:30:00 UTC
client2.sched_start # => 2000-01-01 08:30:00 UTC
client2.sched_end # => 2000-01-01 16:30:00 UTC
怎麼辦我測試一個客戶時間範圍是否在預定的時間範圍內,返回真或假?
到目前爲止,我有這個,但我總是得到真正的和不贊成警告加上它真的很慢。
time_open = Time.use_zone('UTC'){Time.zone.parse '2000-01-01 '+sched.split("-")[0]}
time_close = Time.use_zone('UTC'){Time.zone.parse '2000-01-01 '+sched.split("-")[1]}
range = time_open..time_close
range === client1.sched_start && range === client1.sched_end
range === client2.sched_start && range === client2.sched_end
下面是摘錄的警告
warning: Time#succ is obsolete; use time + 1
而且,時間是不同的格式。例如,
time_open # Sat, 01 Jan 2000 08:00:00 UTC 00:00
這些在獲得迄今是有幫助的:
感謝您的答覆。這就解釋了爲什麼時代會以不同的時間格式顯示。當我做了'time_open.class'時,我得到了'ActiveSupport :: TimeWithZone'。因此,我將打開/關閉時間更改爲'time_open = Time.parse(「2000-01-01 08:00 AM」+「UTC」)'現在它們都是'Time'類。但是,當我追蹤並製作時間範圍,然後查看我的時間對象是否在該範圍內時。我收到一個錯誤。 'TypeError:無法從時間迭代' – JHo
@JHo - 我更新了我的答案,以顯示我應該如何檢查時間是否在一定範圍內。請讓我知道這是否適合你! – Powers
我喜歡這個解決方案。它適用於任意日期並可以輕鬆轉換字符串。此引用也很有用:http://stackoverflow.com/questions/1609267/how-to-find-if-range-is-contained-in-an-array-of-ranges – JHo