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日前

🚌 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍