Có đá quý ruby sẽ định dạng ngày tháng tương ứng với thời gian hiện tại không? Tôi muốn sản lượng như "Ngày mai lúc 5 giờ chiều", "Thứ năm tuần sau lúc 5:15 chiều", tôi không quá lo lắng về kết quả chính xác, miễn là ngày tương đối bằng ngôn ngữ tự nhiênĐịnh dạng ngày tương đối
5
A
Trả lời
7
nếu bạn có đường ray, Tôi nghĩ rằng ActionView::Helpers::DateHelper#distance_of_time_in_words sẽ giúp điều đó.
require 'rubygems'
require 'action_view'
include ActionView::Helpers::DateHelper
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, true) # => less than 20 seconds
distance_of_time_in_words(from_time, 3.years.from_now) # => over 3 years
distance_of_time_in_words(from_time, from_time + 60.hours) # => about 3 days
distance_of_time_in_words(from_time, from_time + 45.seconds, true) # => less than a minute
distance_of_time_in_words(from_time, from_time - 45.seconds, true) # => less than a minute
distance_of_time_in_words(from_time, 76.seconds.from_now) # => 1 minute
distance_of_time_in_words(from_time, from_time + 1.year + 3.days) # => about 1 year
distance_of_time_in_words(from_time, from_time + 4.years + 9.days + 30.minutes + 5.seconds) # => over 4 years
to_time = Time.now + 6.years + 19.days
distance_of_time_in_words(from_time, to_time, true) # => over 6 years
distance_of_time_in_words(to_time, from_time, true) # => over 6 years
distance_of_time_in_words(Time.now, Time.now) # => less than a minute
Trong trường hợp liên quan đến thời điểm hiện tại, sử dụng distance_of_time_in_words_to_now
thay vì distance_of_time_in_words
.
Nếu ứng dụng của bạn là dựa trên đường ray, chỉ cần sử dụng distance_of_time_in_words
, distance_of_time_in_words_to_now
, time_ago_in_words
trong chế độ xem.
-3
thử đá quý 'mãn tính'
nó thực hiện chính xác những gì bạn yêu cầu.
+1
có vẻ như ngược lại: nó phân tích cú pháp thời gian, nó không định dạng chúng. –
Các vấn đề liên quan
- 1. định dạng ngày tháng jquery ui định dạng ngày tháng
- 2. Định dạng ngày ActiveRecord
- 3. DateTime.Parse ngày định dạng
- 4. Định dạng ngày PHP
- 5. Định dạng ngày JAVA
- 6. Định dạng ngày Apache poi
- 7. Ngày tương đối trong ColdFusion
- 8. Cách định dạng đối tượng ngày tháng với định dạng dd/mm/yyyy?
- 9. Thẻ định dạng ngày 1 Struts
- 10. Định dạng ngày tháng PHPExcel
- 11. Định dạng ngày giờ Ngày trong năm
- 12. Chuyển đổi định dạng ngày PHP sang định dạng ngày tháng DateBox của jQueryUI
- 13. ngày định dạng bằng C#
- 14. Định dạng ngày cho tuần
- 15. Định dạng một ngày lịch
- 16. Định dạng ngày và giờ
- 17. jquery tmpl định dạng ngày?
- 18. Định dạng ngày trong RangeValidator
- 19. Định dạng ngày tháng DB2
- 20. ngày định dạng với moment.js
- 21. Định dạng hiển thị ngày tháng Datatables.net
- 22. định dạng ngày giờ sang định dạng SQL bằng C#
- 23. Định dạng ngày trong ngày, ngày tháng, năm
- 24. Chuyển đổi ngày JSON định dạng
- 25. Java: Không thể định dạng Đối tượng đã cho dưới dạng Ngày
- 26. php preg_match định dạng ngày "yyyy-MM"
- 27. Mùa xuân 3.1 Định dạng ngày JSON
- 28. Javascript có được ngày ở định dạng
- 29. Rails 3, Chỉ xem định dạng ngày?
- 30. Viết ngày xlwt với định dạng ngày 'Excel'
Chỉ cần những gì tôi cần, nhưng không sử dụng đường ray: (Bất kỳ ý tưởng nào nếu thành phần Rails có sẵn bên ngoài đường ray? –
Tôi nghĩ rằng mã trên sẽ hoạt động không có đường ray, sau khi cài đặt gói hành động (gem install actionpack), nhưng không – unsouled
@unsouled - Đã xác nhận – steenslag