2017-08-07 46 views
0

我有一個列出大量對象事件的日曆對象。每個事件都包含一個start_date。所以當我打電話在Ruby中查找與今天日期相匹配的對象

event.start_date it gives me "8/6/2017 3:00pm" 

我希望能夠找到今天的所有事件的日期。我正在使用慢性。所以

Chronic.parse('today') would give me "8/6/2017 00:00:00" or something like it 

我沒有使用Rails只是Ruby。因此,我沒有Rails提供的所有特殊方法來幫助我。

如果我輸入特定的日期,我可以找到與特定日期的事件通過使用

event.start_date.starts_with?("8/6/2017") 

,但我還沒有想出如何與今天的日期做。

任何幫助,將不勝感激。

回答

1
time = Chronic.parse('today') 
target_date = Chronic.parse('8/6/2017').to_date 
puts time.to_date == target_date 

Time類(什麼慢性返回)保存日期時間。 Date只保存日期。如果您將Time轉換爲Date,則會丟棄時間信息,然後您只能比較日期本身。

請注意,Date.todayChronic.parse('today').to_date(和Time.now.to_date相同)是一樣的。另請注意,Time班級沒有#to_date,除非您有require 'time',但慢性班車爲您提供。

+0

非常感謝你!太棒了。沒有看到類:Time Ruby文檔中的to_date方法。 –

+0

因爲它不在那裏:)閱讀「附加說明」[這裏](https://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Time.html#method-i-to_date )。 – Amadan