2017-08-07 15 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 just 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は日付のみを保持します。 TimeDateに変換すると、時刻情報が破棄され、日付自体のみを比較することができます。

Date.todayは、Chronic.parse('today').to_dateと同じものです(Time.now.to_dateと同じです)。 require 'time'以外の場合は、Timeクラスには#to_dateが含まれていませんが、Chronicはそれを行います。

+0

ありがとうございます!これは完璧です。クラス:Time Rubyのドキュメントでto_dateメソッドが表示されませんでした。 –

+0

これはありません:)追加のメモ[こちら](https://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Time.html#method-i-to_date)を読んでください。 )。 – Amadan

関連する問題