2010-07-19 10 views
75

मैं सोच रहा था कि रेलवे में समय की तरह गणना करने के लिए रेलवे का कोई तरीका है - आधे मिनट पहले, 2 मिनट पहले, 1 दिन पहले इत्यादि। ट्विटर रीयल टाइम डेट स्टैंप की तरह कुछ ।रूबी/रेल में "एगो" तिथि/समय कार्य

मैं जानना चाहता हूं कि रूबी/रेल के पास इस तरह के दिनांक-समय रूपांतरण के लिए अंतर्निहित कार्य है या नहीं?

उत्तर

151

आप उपयोग कर सकते हैं: विवरण और अधिक विकल्पों के लिए

distance_of_time_in_words(from_time, to_time) 
time_ago_in_words(from_time) 

चेक the API:

10.minutes.ago 
2.days.since 

या आपके विचार में आप सहायकों की है।

+8

रेल 3 के रूप में अब मिनटों के बजाय '10.minutes.ago'। – cbron

+4

यदि आप रेल के बाहर हैं, तो 'active_support' की आवश्यकता है (कम से कम यदि रेल 2.X स्थापित है)। – JellicleCat

+7

को 'active_support/all' की आवश्यकता है या यदि बंडल का उपयोग करना है: मणि "activesupport",: आवश्यकता => "active_support" – cubny

5

आप from_now और कई तरीके उपलब्ध

के लिए ago, since उपनाम का उपयोग
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 वर्ग

0

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 
संबंधित मुद्दे