2009-12-28 4 views
0

Dites que j'ai une application todo qui a des champs title et due_date. Comment puis-je dire "Due in X days?" Si un certain todo est dû le 29 décembre, il devrait être dû dans 2 jours, X heures. Je suppose que c'était pour faire quelque chose avec Time.now. Je comprends qu'il y a unComment faire "En raison de X jours/heure" pour une application todo dans les rails?

<%= distance_of_time_in_words_to_now%> est-ce qu'il ya un contraire à cela?

Merci

+0

ce qui est vraiment pas si difficile dans la plupart des langues. Je ne connais pas Rails mais presque toutes les langues supportent la manipulation de date. – GrayWizardx

Répondre

2

Si quelqu'un est intéressé, voici comment je l'ai résolu.

<% 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 -%> 

Je vais probablement rendre les polices différentes, disons rouge en cas de retard. N'oubliez pas de changer les fuseaux horaires si vous ne vivez pas en temps universel coordonné (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

vous pouvez essayer from_now

3.days.from_now #=> Thu, 31 Dec 2009 07:51:05 UTC +00:00 

peut aussi travailler avec des heures

2.hours.from_now #=> Mon, 28 Dec 2009 11:54:07 UTC +00:00 

et the rails api page

Questions connexes