【问题标题】:Ruby Rails Time zone rush hourRuby Rails 时区高峰时段
【发布时间】:2018-12-11 07:25:24
【问题描述】:

最后一位开发者是这样在我们的应用中使用时间的。

: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

【问题讨论】:

  • 对 CST/CDT 使用 in_time_zone("Central Time (US & Canada)")
  • 使用rake time:zones:all查看所有时区列表

标签: ruby-on-rails ruby timezone


【解决方案1】:

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

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

【讨论】:

  • 喜欢这段代码。谢谢!像魅力一样工作并且精确。
【解决方案2】:

您可能想尝试use_zone 方法

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

【讨论】:

  • 它如何回答原来的问题?
  • 你的逻辑可以传入其中,只是一种替代方式
猜你喜欢
  • 2012-11-07
  • 2011-04-01
  • 2014-07-02
  • 2015-10-25
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
  • 2018-03-02
相关资源
最近更新 更多