2015-09-28 2 views
-1

У меня есть выбор даты:Как получить самую старую дату из выделения?

2015-09-25T11:08:00 
2015-09-25T11:42:00 
2015-09-25T17:02:00 
2015-09-25T17:02:00 
2015-09-28T13:09:00 

Как бы я получить самую последнюю дату от этого выбора. Я пытался использовать

@messagedaterows.max {|obj| @message_thread_ID } 
+1

как они хранятся? Является ли этот выбор в форме? являются ли они массивами объектов datetime, хранящихся в @messagedaterows? – Doon

+0

@Doon Я в настоящее время их вызываю через 'messagedate = options [' Messages ']. Each do | entry | messagedaterows = entry ["Date"] end ' – user3385136

ответ

0
2.0.0p353 :005 > test 
=> [2015-09-28 17:36:51 +0200, 2015-09-27 17:36:51 +0200] 
2.0.0p353 :006 > test.sort 
=> [2015-09-27 17:36:51 +0200, 2015-09-28 17:36:51 +0200] 
2.0.0p353 :007 > test.sort.first 
=> 2015-09-27 17:36:51 +0200 
2.0.0p353 :008 > test.sort.last 
=> 2015-09-28 17:36:51 +0200 
0

Вам не нужно сложной логики для этого.

Просто:

dates.max # => 2015-09-28 13:09:00 

Даже если они являются строками, это должно работать:

dates.max # => "2015-09-28T13:09:00" 
0

старейшей дата также минимальная дата. Поэтому я бы написал что-то вроде этого:

dates = options['Messages'].map { |entry| entry["Date"] } 
dates.min 
#=> 2015-09-25T11:08:00 
+0

он запрашивает 'самую последнюю дату' – dimakura

+0

Он спрашивает * как мне получить самую старую дату * в заголовке ... – spickermann

+0

Это работает, однако, поскольку это итерация возвращается две даты, так как есть две записи. Как вернуть одну единственную запись, которая является самой старой/новейшей? – user3385136

Смежные вопросы