【rails】【ruby】これは覚えたい!異なる型同士を使ってDateTime型で比較する方法
日付(今回は予約可能日)と時刻(今回は予約可能時刻)が
それぞれ異なる型の変数であり、
それをDateTime型の現在時刻で比較する方法を
纏めたいと思います。
テーブル定義を変えるのは大変なので
覚えておくと便利かもです。
予約可能日:
@g08m11.reservation_date ⇒ date型で年月日表示で保持(例:2013-12-05)
予約可能時刻:
params[:reservation][:first] ⇒ string型で時刻のみ(例13:00)
これらを現在日時で比較する時のロジックです。
today = DateTime.now reservation_first = DateTime.new( @g08m11.reservation_date.year , @g08m11.reservation_date.month , @g08m11.reservation_date.day, params[:reservation][:first].split(':')[0].to_i, params[:reservation][:first].split(':')[1].to_i, 0, 0.375 )
そうすることで
if reservation_first <= today #実行したい内容 end
が実行出来ます。
覚えておきたいのは
DateTime型のインスタンスの生成方法と
「0,0.375」を抜くとアメリカ時刻になるという点です。
今日から日時判定のロジックはこのやり方を念頭に置いて
コードを書いていきたいと思います。
個人的なアプリ事情:
facebookやtwitterを定期的にPOSTしたい人にオススメのアプリです。
Buffer
https://itunes.apple.com/jp/app/buffer-for-twitter-facebook/id490474324