dev/mom0tomo

技術メモ

Ruby / Railsで日付と日付の差分を求める

読んだもの

www.rubylife.jp

学んだこと

Timeクラスか、Dateクラスを使う。 時間まで使いたい場合はTimeクラス、日付だけ使いたい場合はDateクラスを使う。

2つのクラスのオブジェクトに対し、「-」を使って差を取得する(引き算ぽい)。

やりたかったこと

期限日と今日の差分を求めて、期限まであと何日か求めたい。

require 'date'

today = Date.current
dead_line = Date.new(2018, 7 ,6)

remain = (dead_line - today).to_i
# -> 3

Date.currentはTime.zoneを、Date.todayはTime.nowを参照している。

また、素のRubyならTimeクラスを使い、 RailsならTimeWithZoneクラスを使うのがいいみたい。

伊藤さんの記事に詳しく書いてあった。

RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い