時間の表示をシンプルに
Gmailぽく時間をシンプルな文字列に変換するメソッドを書いてみました。素直に実装しています。
require 'time' # RFC2822_MONTH_NAME class Time def to_s_simple(now = Time.now) if self.year == now.year if self.day == now.day sprintf('%d:%02d', self.hour, self.min) else sprintf('%s %d', RFC2822_MONTH_NAME[self.month - 1], self.day) end else self.strftime('%y/%m/%d') end end end p Time.now # => Tue Feb 07 01:17:16 JST 2006 p Time.local(2005, 12, 31, 12, 34).to_s_simple # => "05/12/31" p Time.local(2006, 2, 6, 12, 34).to_s_simple # => "Feb 6" p Time.local(2006, 2, 7, 12, 34).to_s_simple # => "12:34"