2016-09-09 97 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')'等 –

相關問題