2015-11-29 191 views
1

我需要按小時訂購@events,沒有日期。 我的代碼:如何按小時對日期時間進行排序:分鐘(忽略日期)

<% @events.sort_by(&:start_time).each do |event| %> 
    <%= event.start_time.strftime('%H:%M') %> 
<% end %> 

結果是:

02:00 # => 2015-11-27 02:00:00 +0200 
03:05 # => 2015-11-27 03:05:00 +0200 
04:00 # => 2015-11-27 04:00:00 +0200 
`03:45 # => 2015-12-04 03:45:00 +0200` 

所需要的結果是:

02:00 # => 2015-11-27 02:00:00 +0200 
03:05 # => 2015-11-27 03:05:00 +0200 
'03:45 # => 2015-12-04 03:45:00 +0200' 
04:00 # => 2015-11-27 04:00:00 +0200 

的問題是,在最後一排有一個非常新的日期。 如何分類@events以獲得上述結果?

回答

4

@events.sort_by(&:start_time)應..

@events.sort_by{|ev| ev.start_time.strftime('%H:%M')} 

@events.sort_by{|ev| [ev.start_time.hour, ev.start_time.minute]} 

我已經嘗試了他們使用您提供相同的輸入和他們完美地工作。祝你好運。

3

請嘗試下面的代碼:

@events.sort_by{|e| e.start_time.strftime('%H:%M')} 
相關問題