2016-09-09 65 views
2

我试图创建一个方法来确定特定日期和时间(在特定时区内)是否在一个范围内。Ruby:如何检查日期和时间是否在一个范围内

range = between(start_time, end_time) 

start_time = "date time timezone" 
end_time = "date time timezone" 

这里是什么样的范围内输入看起来像一个例子:

range => between("2013-12-25 04:45:00 -0800", "2015-12-25 5:00:01 -0800") 

我想如果一个特定的日期和时间,在该范围内,返回true或false。

实例特定日期:

instance = "2014-01-01 16:35:45 -0800" 

instance.between("2013-12-25 04:45:00 -0800", "2015-12-25 5:00:01 -0800") 

我没有与Ruby的时间太多经验。任何建议将不胜感激。

回答

7
require "date" 
instance = DateTime.parse("2014-01-01 16:35:45 -0800") 
d1  = DateTime.parse("2013-12-25 04:45:00 -0800") 
d2  = DateTime.parse("2015-12-25 5:00:01 -0800") 
p instance.between?(d1, d2) # => true 
+0

正是我所需要的。谢谢。我不知道如何使用解析。 – morrime

+0

为了安全起见,请使用[DateTime :: strptime](http://ruby-doc.org/stdlib-2.3.0/libdoc/date/rdoc/DateTime.html#method-c-strptime):' instance = DateTime.strptime(“2014-01-01 16:35:45 -0800”,'%Y-%m-%d%H:%M:%S%:z')'等 –

相关问题