rails helper函数返回最近的日期

new*_*bie 3 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我需要编写rails helper方法以返回最新日期。

到目前为止,这是我的方法

def latest_date(value_dates)
  value_dates.each  |value_date| do
  my_dates << value_date
end
Run Code Online (Sandbox Code Playgroud)

我需要对上面的数组进行排序,并只返回最新日期。

日期采用以下格式:

2012-10-10T22:11:52.000Z
Run Code Online (Sandbox Code Playgroud)

有没有日期排序方法?

MrY*_*iji 5

.max方法将为您完成;)

> [Date.today, (Date.today + 2.days) ].max
#=> Fri, 05 Jul 2013 
Run Code Online (Sandbox Code Playgroud)

有关它的文档(Ruby 2.0):

您可能需要将数据解析为Dates,如果它们是字符串,则可以使用:

dates = ["2012-10-10T22:11:52.000Z", "2012-11-10T22:11:52.000Z", "2013-10-10T22:11:52.000Z"]
dates = dates.map{ |date_str| Date.parse(date_str) }
dates.max #=> returns the maximum date of the Array
Run Code Online (Sandbox Code Playgroud)

请参阅我的irb控制台(Ruby 1.9.3):

> dates = ["2012-10-10T22:11:52.000Z", "2012-11-10T22:11:52.000Z", "2013-10-10T22:11:52.000Z"]
#=> ["2012-10-10T22:11:52.000Z", "2012-11-10T22:11:52.000Z", "2013-10-10T22:11:52.000Z"] 
> dates = dates.map{ |date_str| Date.parse(date_str) }
#=> [Wed, 10 Oct 2012, Sat, 10 Nov 2012, Thu, 10 Oct 2013] 
> dates.max
#=> Thu, 10 Oct 2013
Run Code Online (Sandbox Code Playgroud)

DateTime.parse(date_str)如果您还想保留时间,请使用)