在Rails中是否有一个表示未来时间的方法(与time_ago_in_words相反)?

7 浏览
0 Comments

在Rails中是否有一个表示未来时间的方法(与time_ago_in_words相反)?

有没有与time_ago_in_words相反的rails helper?我似乎找不到相反的方法...我想把7天后转换成"大约1周后"。

我可以让过去的时间工作:

 <%= time_ago_in_words( milestone.due_date) %>

但是对于将来的时间,这个方法不起作用:

   <%= time_ahead_in_words(milestone.due_date) %>

困扰不已。

0
0 Comments

在Rails中有一个常用的辅助方法`time_ago_in_words`,它用于以易读的方式显示给定时间与当前时间之间的时间差。然而,有时我们需要与当前时间相反的效果,即显示将来某个时间与当前时间之间的时间差。

为了解决这个问题,可以使用`distance_in_time`辅助方法。如下所示,首先获取当前时间,然后使用`distance_of_time_in_words`方法计算给定时间与当前时间之间的时间差。

from_time = Time.current
helper.distance_of_time_in_words(from_time, from_time + 50.minutes)
# => 大约1小时

在你的情况下,你可以这样做:

from_time = Time.current
helper.distance_of_time_in_words(from_time, from_time + 6.days)
# => 大约7天

通过使用`distance_in_time`辅助方法,你可以轻松地获取给定时间与当前时间之间的时间差。这对于显示未来事件的倒计时或提醒非常有用。

0
0 Comments

可以使用distance_of_time_in_words方法来解决这个问题。该方法的用法如下:

distance_of_time_in_words(Time.current, milestone.due_date)

这个方法的效果相当于你所提到的time_ahead_in_words的伪代码。

具体的用法可以参考distance_of_time_in_words文档

原因:问题的出现是因为在Rails框架中,没有提供直接获取未来时间的方法,而只提供了获取过去时间的方法time_ago_in_words。因此,需要使用distance_of_time_in_words方法来间接获取未来时间。

解决方法:使用distance_of_time_in_words方法,并传入当前时间和指定的未来时间,即可得到未来时间与当前时间之间的时间差。

0
0 Comments

在Rails中,我们经常会使用time_ago_in_words方法来显示一个时间距离现在的相对时间,比如"2小时前"或"3天前"。然而,有时我们可能需要显示一个时间距离未来的相对时间,比如"2小时后"或"3天后"。但是Rails并没有提供一个内置的方法可以直接实现这个功能。

幸运的是,我们可以使用distance_of_time_in_words方法来解决这个问题。该方法可以计算两个时间之间的距离,并返回一个描述性的相对时间字符串。该方法接受三个参数:起始时间from_time,结束时间to_time和一些可选的选项options

要使用distance_of_time_in_words方法来显示一个时间距离未来的相对时间,我们可以按照以下方式设置代码:

<%= distance_of_time_in_words(Time.now, milestone.due_date) %>

上面的代码将会计算当前时间Time.now与里程碑的截止日期milestone.due_date之间的时间距离,并返回一个描述性的相对时间字符串。

通过使用distance_of_time_in_words方法,我们可以很方便地实现一个时间距离未来的相对时间的显示。

0