GEk*_*Ekk 1 ruby datetime ruby-on-rails
我需要@events按小时订购,没有日期。我有代码:
<% @events.sort_by(&:start_time).each do |event| %>
<%= event.start_time.strftime('%H:%M') %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
结果是:
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`
Run Code Online (Sandbox Code Playgroud)
需要的结果是:
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
Run Code Online (Sandbox Code Playgroud)
问题是最后一行有一个更新的日期。我怎样才能对@events上面的结果进行排序?
@events.sort_by(&:start_time) 应该..
@events.sort_by{|ev| ev.start_time.strftime('%H:%M')}
Run Code Online (Sandbox Code Playgroud)
或者
@events.sort_by{|ev| [ev.start_time.hour, ev.start_time.minute]}
Run Code Online (Sandbox Code Playgroud)
我已经使用您提供的相同输入尝试了它们,并且它们运行良好。祝你好运。