よく使っているけど毎回調べている気がするので、まとめておく。
シチュエーション的には「DBから今日、追加されたデータを取得したい」というときの「今日」の表現の仕方。
一日の始まりから終わり
Timeクラスを使って表現する。rails consoleで確認。
2.3.4 :005 > now = Time.current => Sun, 17 Dec 2017 13:00:48 JST +09:00 2.3.4 :006 > now.beginning_of_day => Sun, 17 Dec 2017 00:00:00 JST +09:00 2.3.4 :007 > now.end_of_day => Sun, 17 Dec 2017 23:59:59 JST +09:00 2.3.4 :008 >
上記例だとnowという変数を使っているが、Time.current.beginning_of_day
とかでも問題ない。
あとはこれを使ってモデルで検索すればよい。
from = Time.current.beginning_of_day to = Time.current.end_of_day Model.where(created_at: from..to)
まとめ
Timeクラスのbeginning_of_dayとend_of_dayというメソッドを使う。
参考にしたサイトはこちら。