我正在尝试为仅在一天中的特定时间显示的食品卡车创建一个订购页面。我知道这可能是可能的,但我不确定如何实现它。时间必须基于“实时”(可能像 GMT)而不是用户的本地时间。
我在控制器中考虑,它将检查“实时”并在时间范围内呈现一页,如果时间在时间范围外,则呈现另一页。
提前致谢!
我正在尝试为仅在一天中的特定时间显示的食品卡车创建一个订购页面。我知道这可能是可能的,但我不确定如何实现它。时间必须基于“实时”(可能像 GMT)而不是用户的本地时间。
我在控制器中考虑,它将检查“实时”并在时间范围内呈现一页,如果时间在时间范围外,则呈现另一页。
提前致谢!
RailsTime
方法可以帮助解决这个问题。这是您可以直接放入控制器操作的代码片段示例:
now = Time.now
start_of_day = now.at_midnight
time_at_noon = start_of_day + 43200 # 12hr * 60min * 60sec
if now > time_at_noon
render template: "after_noon"
else
render template: "before_noon"
end
当然,您需要根据要解析的时间进行计算。
此外,如果您要跨控制器应用此逻辑,您可能希望将其抽象为一个模块。
更新:
如果要将所有时间标准化为 UTC,则需要将上面的整个代码段包装在明确声明时区的块中(当然,您需要将所需的本地时间转换为 UTC):
Time.use_zone('UTC') do
# above code goes here
end