Ruby / Rails'de "önce" tarih / saat işlevleri


88

Rails'de zaman damgasını hesaplamanın bir yolu olup olmadığını merak ediyordum - yarım dakika önce, 2 dakika önce, 1 gün önce vb. Twitter gerçek zamanlı tarih damgası gibi bir şey.

Ruby / Rails’in böyle bir tarih-saat dönüşümü için yerleşik bir işlevi olup olmadığını bilmek istiyorum.

Yanıtlar:


191

Kullanabilirsiniz:

10.minutes.ago
2.days.since

Veya görüşlerinize göre yardımcılarınız var:

distance_of_time_in_words(from_time, to_time)
time_ago_in_words(from_time)

Ayrıntılar ve daha fazla seçenek için API'yi kontrol edin .


8
Rails 3 itibariyle 10.minutes.ago, dakika yerine şimdi .
cbron

4
Rails'in dışındaysanız, require 'active_support'(en azından Rails 2.X kuruluysa).
JellicleCat

7
'active_support / all' gerektirir veya bundle: gem "activesupport" kullanılıyorsa,: require => "active_support"
Alireza Eliaderani

9

Geçmişte veya gelecekte zamanı elde etmek için mevcut yöntemleri ago, sincediğer adlarını from_nowve mevcut birçok yöntemi kullanarak kullanabilirsiniz.

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 sınıfındaki mevcut tüm yöntemleri kontrol edin


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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.