"Vor" Datums- / Zeitfunktionen in Ruby / Rails


86

Ich habe mich gefragt, ob es in Rails eine Möglichkeit gibt, Zeitstempel wie vor einer halben Minute, vor zwei Minuten, vor einem Tag usw. zu berechnen. So etwas wie ein Echtzeit-Datumsstempel von Twitter.

Ich möchte wissen, ob Ruby / Rails eine integrierte Funktion für eine solche Datums- / Uhrzeitkonvertierung hat.

Antworten:


183

Sie können verwenden:

10.minutes.ago
2.days.since

Oder aus Ihrer Sicht haben Sie die Helfer:

distance_of_time_in_words(from_time, to_time)
time_ago_in_words(from_time)

Überprüfen Sie die API auf Details und weitere Optionen.


8
Ab Rails 3 ist es jetzt 10.minutes.agostatt Minuten.
Cbron

4
Wenn Sie sich außerhalb von Rails befinden require 'active_support'(zumindest wenn Rails 2.X installiert ist).
JellicleCat

7
erfordern 'active_support / all' oder bei Verwendung von bundle: gem "activesupport" ,: require => "active_support"
Alireza Eliaderani

8

Sie können verfügbare Methoden verwenden , um die Zeit in Vergangenheit oder Zukunft mit zu bekommen ago, sincealias für from_nowund viele verfügbaren Methoden

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 

Überprüfen Sie alle verfügbaren Methoden in Zeitklasse


2

Entfernung_der_Zeit_in_Wörtern :

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.