2013-08-21 43 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 
相关问题