rails(time_ago_in_words对面)是否有时间提前词
Is there a time ahead words in rails (opposite of time_ago_in_words)
有time_ago_in_words对面的rails帮手吗?我似乎找不到相反的东西……从现在起我可以将 7 天转换为 "in about 1 week"。
我可以让它为过去工作:
<%= time_ago_in_words( milestone.due_date) %>
但这对未来不起作用:
<%= time_ahead_in_words(milestone.due_date) %>
难倒了。
您可以改用distance_of_time_in_words(from_time, to_time = 0, options = {})
。
所以你可以这样设置:
<%= distance_of_time_in_words(Time.now, milestone.due_date) %>
听起来您需要 "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
您可以使用 distance_of_time_in_words
。例如:
distance_of_time_in_words(Time.current, milestone.due_date)
等同于您的 time_ahead_in_words
伪代码。
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
仍然会 return 结果,所以要小心!
如果在 rails 控制台中使用 distance_of_time_in_words
,you need to prepend helper.
,就像这样:
helper.distance_of_time_in_words(Time.current, appointment_start_time)
=> "about 2 years"
参考文献:
有time_ago_in_words对面的rails帮手吗?我似乎找不到相反的东西……从现在起我可以将 7 天转换为 "in about 1 week"。
我可以让它为过去工作:
<%= time_ago_in_words( milestone.due_date) %>
但这对未来不起作用:
<%= time_ahead_in_words(milestone.due_date) %>
难倒了。
您可以改用distance_of_time_in_words(from_time, to_time = 0, options = {})
。
所以你可以这样设置:
<%= distance_of_time_in_words(Time.now, milestone.due_date) %>
听起来您需要 "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
您可以使用 distance_of_time_in_words
。例如:
distance_of_time_in_words(Time.current, milestone.due_date)
等同于您的 time_ahead_in_words
伪代码。
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
仍然会 return 结果,所以要小心!如果在 rails 控制台中使用
distance_of_time_in_words
,you need to prependhelper.
,就像这样:
helper.distance_of_time_in_words(Time.current, appointment_start_time)
=> "about 2 years"
参考文献: