use*_*289 2 ruby datetime ruby-on-rails ruby-on-rails-4
我试图distance_of_time_in_words在rails 4中使用.我在db中有一个datetime字段expires_at.我尝试了几种不同的格式化方法,但似乎无法让它正常工作.
<%= offer.expires_at.strftime('%I:%M %p %b %d') %> // works properly: 12:00 AM Mar 29
<%= distance_of_time_in_words(offer.expires_at) %> // fails: undefined method `to_datetime' for 0:Fixnum
<%= distance_of_time_in_words(Time.parse(offer.expires_at.to_s)) %> // fails as above
<%= distance_of_time_in_words(offer.expires_at.to_time.to_i) %> // works but shows '44 years' as distance
Run Code Online (Sandbox Code Playgroud)
RoR noob的任何指针?
您想要传入第二个时间参数.没有第二个参数,它将从0(或大纪元 - 这就是为什么你从大纪元经常从1970年1月1日开始44年)来计算它.尝试这样的事情:
<%= distance_of_time_in_words(offer.expires_at, Time.now) %>
Run Code Online (Sandbox Code Playgroud)
这将从报价到期到当前时间计算.你可以切换参数顺序,如果这对你更有意义,但它会输出相同的东西.
实际上有一个快捷方式:
<%= distance_of_time_in_words_to_now(offer.expires_at) %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |