2013-08-21 76 views
0

我有這個日期時間:如何檢查DateTime的時間是晚上9點到17點(Ruby)?

time = 2013-08-21 11:54:49 +0200 

我也有一個表示時間間隔兩個整數。例如,如果我想它是上午9點到下午5點,我將使用之間:

start = 9 
finish = 17 

我現在要檢查,如果日期時間是兩個整數的區間內。在這個例子中結果將是true,因爲11:54的事件在9到17之間...

如何做到這一點?

+0

首先,事件分配不正確,這會給你帶來一些麻煩。這需要修復,以便代碼可以真正運行。 – vgoff

+0

您可以像這樣分配(現在而不是事件,它是時間):time = Time.new(2013,8,21,11,54,49,「+02:00」)或者使用DateTime.parse來使用串。您的任務根本不會按原樣工作。 – vgoff

回答

2

event.hour # => 11 

您可以與任何其他比較這整不在乎時區的代碼可能看起來像這樣:

(start..finish).include? DateTime.now.strftime('%H').to_i

+0

提及時區的+1 – Martin

1

在你的問題中,作業不正確。這會工作:

require 'date' 
event = DateTime.parse('2013-08-21 11:54:49 +0200') 

如果你有一個DateTime例如,您可以簡單地使用#hour:如果你不

event.hour.between?(start, finish) # => true 
相關問題