時間範囲を示す params 文字列
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
クライアントの時間範囲がスケジュールされた時間範囲内にあるかどうかをテストして、true または false を返すにはどうすればよいですか?
これまでのところ、私はこれを持っていますが、常に真になり、非推奨の警告に加えて、本当に遅いです。
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
これらは、これまでのところ役に立ちました。