我想在我的應用程序中顯示一條消息,僅在我的時區中的特定時間之間顯示。 我被困在最好的方式來做到這一點。如何在ruby中編寫if語句以便在某些時間之間發生某些事情。
到目前爲止,我有:
<% if 09:00 UTC-06:00 =< Time.current =<+ 19:00 UTC-06:00 %>
// Display this message
<% end %>
任何幫助將非常感激。
我想在我的應用程序中顯示一條消息,僅在我的時區中的特定時間之間顯示。 我被困在最好的方式來做到這一點。如何在ruby中編寫if語句以便在某些時間之間發生某些事情。
到目前爲止,我有:
<% if 09:00 UTC-06:00 =< Time.current =<+ 19:00 UTC-06:00 %>
// Display this message
<% end %>
任何幫助將非常感激。
這是挑出小時,檢查它是否在一定範圍內的問題:
(9..19).include?(Time.current.hour)
如果你想有一天的不同時間多封郵件:
case (Time.current.hour)
when 0..9, 21..23
"Late"
when 9..19
"Prime"
else
"Regular"
end
你可以始終使用between?
這是一個漂亮的小方法
Time.current.between?('09:00 UTC-05:00', '19:00 UTC-05:00')
所以它會很好地迴應你,如果
你可以做到這一點,它返回真/假:
time = Time.new
if time.hour >= 9 && time.hour < 19
// Your code
end
Rails默認使用您的操作系統的時區。 –
這是否考慮時區? –
它使用'Time.current'發出的任何時區,這可能取決於當前請求的'Time.zone'設置。如果你想讓它不可知:'Time.current.utc'。 – tadman