转换最新日期转换为time_ago格式

时间:2013-07-08 16:41:04

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

所以我有以下代码返回最新日期:

my_dates = due_dates.results.map { |result| result.date_value}
= my_dates.max
// returns 2012-07-25T00:00:00+00:00

我想要及时返回日期格式:

time_ago_in_words(my_dates))

由于max方法更改了格式,因此time_ago不起作用。

注意my_dates返回

[Wed, 25 Jul 2012 00:00:00 +0000, Wed, 25 Jul 2012 00:00:00 +0000]

我不确定如何以time_ago格式实现结果。

1 个答案:

答案 0 :(得分:1)

  1. 您正在使用日期的时间值。为什么不使用DateTime.to_date (docs)然后比较日期?
  2. 接下来,Enumerable#max方法会比较<=> - 方法中的元素。它不会改变类型或值。
  3. 也许这可以帮助你:

    max = [Time.now, Time.now-2.hours].max                # => 2013-07-08 19:05:35 +0200
    max = [Time.now, Time.now-2.hours].map(&:to_date).max # => Mon, 08 Jul 2013
    ActionView::DateHelpers.time_ago_in_words(max)        # => "about 10 minutes ago"