Ruby / Railsの「前」の日付/時刻関数


87

Railsに、30分前、2分前、1日前などのタイムスタンプを計算する方法があるかどうか疑問に思いました。Twitterのリアルタイムの日付スタンプのようなものです。

Ruby / Railsにそのような日時変換機能が組み込まれているかどうか知りたいですか?

回答:


187

次を使用できます。

10.minutes.ago
2.days.since

またはあなたの見解では、あなたはヘルパーを持っています:

distance_of_time_in_words(from_time, to_time)
time_ago_in_words(from_time)

詳細とその他のオプションについては、APIを確認してください。


8
Rails 3の時点では10.minutes.ago、分ではなく現在です。
cbron 2012年

4
Railsの外部にいる場合require 'active_support'(少なくともRails 2.Xがインストールされている場合)。
JellicleCat 2012

7
require'active_support / all 'またはバンドルを使用する場合:gem "activesupport"、:require => "active_support"
Alireza Eliaderani 2013年

9

利用可能なメソッドを使用agoしてsince、、エイリアス、from_nowおよび多くの利用可能なメソッドを使用して、過去または将来の時間を取得できます。

Time.current
#=> Tue, 20 Sep 2016 15:03:30 UTC +00:00

2.minutes.ago
#=> Tue, 20 Sep 2016 15:01:30 UTC +00:00

2.minutes.since
#=> Tue, 20 Sep 2016 15:05:30 UTC +00:00 

1.month.ago
#=> Sat, 20 Aug 2016 15:03:30 UTC +00:00

1.year.since
#=> Wed, 20 Sep 2017 15:03:30 UTC +00:00 

Timeクラスで使用可能なすべてのメソッドを確認してください


2

distance_of_time_in_words

from_time = Time.now

distance_of_time_in_words(from_time, from_time + 50.minutes) # => about 1 hour
distance_of_time_in_words(from_time, 50.minutes.from_now) # => about 1 hour
distance_of_time_in_words(from_time, from_time + 15.seconds) # => less than a minute
distance_of_time_in_words(from_time, from_time + 15.seconds, include_seconds: true) # => less than 20 seconds

time_ago_in_words

time_ago_in_words(3.minutes.from_now) # => 3 minutes
time_ago_in_words(3.minutes.ago) # => 3 minutes
time_ago_in_words(Time.now - 15.hours) # => about 15 hours
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.