我有这个日期时间:如何检查DateTime的时间是晚上9点到17点(Ruby)?
time = 2013-08-21 11:54:49 +0200
我也有一个表示时间间隔两个整数。例如,如果我想它是上午9点到下午5点,我将使用之间:
start = 9
finish = 17
我现在要检查,如果日期时间是两个整数的区间内。在这个例子中结果将是true
,因为11:54的事件在9到17之间...
如何做到这一点?
我有这个日期时间:如何检查DateTime的时间是晚上9点到17点(Ruby)?
time = 2013-08-21 11:54:49 +0200
我也有一个表示时间间隔两个整数。例如,如果我想它是上午9点到下午5点,我将使用之间:
start = 9
finish = 17
我现在要检查,如果日期时间是两个整数的区间内。在这个例子中结果将是true
,因为11:54的事件在9到17之间...
如何做到这一点?
:
event.hour # => 11
您可以与任何其他比较这整不在乎时区的代码可能看起来像这样:
(start..finish).include? DateTime.now.strftime('%H').to_i
提及时区的+1 – Martin
在你的问题中,作业不正确。这会工作:
require 'date'
event = DateTime.parse('2013-08-21 11:54:49 +0200')
如果你有一个DateTime
例如,您可以简单地使用#hour
:如果你不
event.hour.between?(start, finish) # => true
首先,事件分配不正确,这会给你带来一些麻烦。这需要修复,以便代码可以真正运行。 – vgoff
您可以像这样分配(现在而不是事件,它是时间):time = Time.new(2013,8,21,11,54,49,“+02:00”)或者使用DateTime.parse来使用串。您的任务根本不会按原样工作。 – vgoff