Railsで日時を「xx分前」、「xx時間前」表記にする


Ruby on Railsで日時を「xx分前」、「xx時間前」表記にする手順です。

🍣 定義ファイルの追加

config/initializers/time_format_human.rbを追加して次の内容を記述します。

Time::DATE_FORMATS[:human] = lambda do |date|
seconds = (Time.zone.now - date).round
days = seconds / (60 * 60 * 24)
return "#{days}日前" if days.positive?
hours = seconds / (60 * 60)
return "#{hours}時間前" if hours.positive?
minutes = seconds / 60
return "#{minutes}分前" if minutes.positive?
return "#{seconds}秒前"
end

😼 動作サンプル

3.seconds.ago.to_s(:human) #=> 3秒前
3.minutes.ago.to_s(:human) #=> 3分前
3.hours.ago.to_s(:human) #=> 3時間前
3.days.ago.to_s(:human) #=> 3日前

🎳 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)