我需要编写rails helper方法来返回最近的日期。
到目前为止,这是我的方法
def latest_date(value_dates)
value_dates.each |value_date| do
my_dates << value_date
end
我需要对上面的数组进行排序并返回最新的日期。
日期采用以下格式:
2012-10-10T22:11:52.000Z
日期是否有排序方法?
答案 0 :(得分:4)
.max
方法会为您完成;)
> [Date.today, (Date.today + 2.days) ].max
#=> Fri, 05 Jul 2013
关于它的文档(Ruby 2.0):
您可能需要将数据解析为日期,如果它们是字符串,您可以使用:
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
请参阅我的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
(如果您还要保留时间,请使用DateTime.parse(date_str)