Ruby Rails时区高峰时间

时间:2018-07-03 04:44:40

标签: ruby-on-rails ruby timezone

最后一位开发者正在我们的应用程序中使用时间。

:timestamp_requested => Time.now.utc

我想检查:timestamp_requested是否在4:15PM6:00PM CST之间。

我看到另一篇使用in_time_zone的帖子,但不确定两次之间如何检查?

t = foo.start_time
#⇒ 2000-01-01 14:20:00 UTC
t.zone
#⇒ "UTC"
t.in_time_zone("America/Chicago")
#⇒ Sat, 01 Jan 2000 09:20:00 EST -05:00

2 个答案:

答案 0 :(得分:1)

最简单的检查时间在特定范围内的方法是比较小时和分钟:

cst = time.in_time_zone("America/Guatemala") # CST whole year
(16..18).cover?(cst.hour) && cst.min >= 15

答案 1 :(得分:1)

您可能想尝试use_zone方法

Time.use_zone("America/Chicago") { (16..18).cover?(time.hour) && time.min >= 15 }