ฉันสงสัยว่ามีวิธีใน Rails ในการคำนวณการประทับเวลาเช่น - ครึ่งนาทีที่แล้ว 2 นาทีที่แล้ว 1 วันที่ผ่านมา ฯลฯ บางอย่างเช่นการประทับวันที่ตามเวลาจริงของ twitter
ฉันต้องการทราบว่า Ruby / Rails มีฟังก์ชันในตัวสำหรับการแปลงวันเวลาดังกล่าวหรือไม่?
ฉันสงสัยว่ามีวิธีใน Rails ในการคำนวณการประทับเวลาเช่น - ครึ่งนาทีที่แล้ว 2 นาทีที่แล้ว 1 วันที่ผ่านมา ฯลฯ บางอย่างเช่นการประทับวันที่ตามเวลาจริงของ twitter
ฉันต้องการทราบว่า Ruby / Rails มีฟังก์ชันในตัวสำหรับการแปลงวันเวลาดังกล่าวหรือไม่?
คำตอบ:
คุณสามารถใช้ได้:
10.minutes.ago
2.days.since
หรือในมุมมองของคุณคุณมีตัวช่วย:
distance_of_time_in_words(from_time, to_time)
time_ago_in_words(from_time)
ตรวจสอบAPIเพื่อดูรายละเอียดและตัวเลือกเพิ่มเติม
require 'active_support'
(อย่างน้อยถ้าติดตั้ง Rails 2.X)
คุณสามารถใช้วิธีการที่ใช้ได้จะได้รับเวลาในอดีตหรือในอนาคตโดยใช้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
ตรวจสอบวิธีการที่มีอยู่ทั้งหมดในคลาสเวลา
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(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
10.minutes.ago
แทนที่จะเป็นนาที