Zastanawiałem się, czy w Railsach jest sposób na obliczenie znacznika czasu - pół minuty temu, 2 minuty temu, 1 dzień temu itd. Coś w rodzaju twitterowego znacznika daty w czasie rzeczywistym.
Chcę wiedzieć, czy Ruby / Rails ma wbudowaną funkcję do takiej konwersji daty i czasu?
ruby-on-rails
ruby
datetime
kapso
źródło
źródło
10.minutes.ago
zamiast min.require 'active_support'
(przynajmniej jeśli zainstalowano Rails 2.X).Można użyć dostępnych metod, aby uzyskać czas w przeszłości lub przyszłości użyciu
ago
,since
alias dlafrom_now
i wiele dostępnych metodTime.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
Sprawdź wszystkie dostępne metody w klasie Time
źródło
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
źródło