如何在铁路中使用todo应用程序“在X天/时间内到期”?

时间:2009-12-28 07:35:01

标签: ruby-on-rails datetime

假设我有一个todo应用程序,其中包含title和due_date字段。我怎么说“在X天到期?”如果某个待办事项在12月29日到期,它应该说在2天内到期,X小时。

我想是用Time.now做点什么的。我明白有一个

<%= distance_of_time_in_words_to_now%>是否与此相反?

由于

4 个答案:

答案 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

the rails api page

答案 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)