Web + Life Hack

〜True But Useless〜

【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」を抜くとアメリカ時刻になるという点です。


今日から日時判定のロジックはこのやり方を念頭に置いて
コードを書いていきたいと思います。


個人的なアプリ事情:
facebooktwitterを定期的にPOSTしたい人にオススメのアプリです。

Buffer

f:id:g08m11:20131205233526j:plain
https://itunes.apple.com/jp/app/buffer-for-twitter-facebook/id490474324