是否有与time_ago_in_words相对的rails helper?我似乎无法找到相反的情况......我可以在7天后将其转换为“大约1周”。
我可以让它适用于过去:
<%= time_ago_in_words( milestone.due_date) %>
但这对未来不起作用:
<%= time_ahead_in_words(milestone.due_date) %>
难住了。
答案 0 :(得分:5)
您可以改用distance_of_time_in_words(from_time, to_time = 0, options = {})
。
所以你可以这样设置:
<%= distance_of_time_in_words(Time.now, milestone.due_date) %>
答案 1 :(得分:2)
听起来你需要“distance_in_time”辅助方法。
实施例
from_time = Time.current
helper.distance_of_time_in_words(from_time, from_time + 50.minutes)
=>about 1 hour
更具体地说,在你的情况下,你会这样做:
from_time = Time.current
helper.distance_of_time_in_words(from_time, from_time + 6.days)
=>about 7 days
答案 2 :(得分:1)
您可以使用distance_of_time_in_words
。例如:
distance_of_time_in_words(Time.current, milestone.due_date)
等同于您的time_ahead_in_words
伪代码。
有关详细信息,请参阅distance_of_time_in_words documentation。
答案 3 :(得分:0)
distance_of_time_in_words
是您所追求的。请注意:
distance_of_time_in_words
不是 假设 ,而是您从现在起 的意思,所以您必须告诉Time.current
。例如appointment_start_time = ActiveSupport::TimeZone['Sydney'].parse("2022-11-14 07:00:00 UTC")
distance_of_time_in_words(Time.current, appointment_start_time)
=> "about 2 years"
distance_of_time_in_words
仍会返回结果,所以请注意!
,如果在Rails控制台中使用you need to prepend helper.
,则使用distance_of_time_in_words
,就像这样:
helper.distance_of_time_in_words(Time.current, appointment_start_time)
=> "about 2 years"
参考: