/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

Railsで1日の最初から最後までの時間を扱う

よく使っているけど毎回調べている気がするので、まとめておく。

シチュエーション的には「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というメソッドを使う。

参考にしたサイトはこちら。

beginning_of_day - リファレンス - - Railsドキュメント

Railsでの日付操作でよく使うものまとめ - Qiita

Real Time Web Analytics