Ruby on Railsのアプリケーションで、ユーザに登録してもらった誕生日と現在の日時との差を求め、ユーザの年齢を取得しようとしています。
以下、Railsのコンソール上での結果を示します。
sh
1[2] pry(main)> user.birthday 2=> Fri, 05 Apr 1996 00:00:00 JST +09:00 3[3] pry(main)> user.birthday.class 4=> ActiveSupport::TimeWithZone 5[4] pry(main)> Time.zone.now 6=> Sat, 10 Dec 2016 18:29:15 JST +09:00 7[5] pry(main)> Time.zone.now.class 8=> ActiveSupport::TimeWithZone 9[6] pry(main)> diff = Time.zone.now - user.birthday 10=> 652732180.2066333 11[7] pry(main)> diff.class 12=> Float
user.birthday
, Time.zone.now
は共にActiveSupport::TimeWithZone
のインスタンスです。
以下のAPIドキュメントによると、ActiveSupport::TimeWithZone
インスタンス同士の引き算の結果(-
メソッドの返り値)はまたActiveSupport::TimeWithZone
インスタンスであるようです。
しかし、結果を見てみると、Float
が返っています。
この問題の原因・解決策などご存知の方がいらっしゃいましたら、ご教授いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/12/20 08:07