假设我有一个todo应用程序,其中包含title和due_date字段。我怎么说“在X天到期?”如果某个待办事项在12月29日到期,它应该说在2天内到期,X小时。
我想是用Time.now做点什么的。我明白有一个
<%= distance_of_time_in_words_to_now%>
是否与此相反?
由于
答案 0 :(得分:2)
如果有人有兴趣,我就是这样解决的。
<% if post.date < Time.now -%>
Due <%=h distance_of_time_in_words(post.date, Time.now) %> ago
<% else -%>
Due in <%= distance_of_time_in_words(post.date, Time.now) %>
<% end -%>
我可能会让字体变得不同,说过期就是红色。
如果您没有以协调的宇宙时间(UTC)生活,请记住更改时区。
#First find your time zone
rake time:zones:local
#My output
* UTC -08:00 *
Pacific Time (US & Canada)
Tijuana
#Copy 'Pacific Time (US & Canada)' and replace line 46 in config/environment.rb
config.time_zone = 'Pacific Time (US & Canada)'
#Be sure to restart your server and you are set to go.
答案 1 :(得分:1)
你可以试试from_now
3.days.from_now #=> Thu, 31 Dec 2009 07:51:05 UTC +00:00
也可以使用数小时
2.hours.from_now #=> Mon, 28 Dec 2009 11:54:07 UTC +00:00
答案 2 :(得分:1)
以下是distance_of_time_in_words
的实施:http://github.com/rails/rails/blob/v2.3.5/actionpack/lib/action_view/helpers/date_helper.rb#L62
不应该太难实现自己的反转版本。
答案 3 :(得分:0)