0

今、私はこのようなヘルパーメソッドを作ろうとしています.
引数の日時を今日の日付と比較するにはどうすればよいですか?

def todate_datetime(date_time)
    date_time = Date.today ? "<font color='red'>#{date_time}</font>" : date_time
end

アップデート:

見る

<%= 今日の日時(community_topic.updated_at) %>

ヘルパー

def today_datetime(date_time)
  date_time == Date.today ? "<font color='red'>#{date_time.to_s(:ct)}</font>" : date_time.to_s(:ct)
end
4

1 に答える 1

4

Ruby 1.9.2 から、DateTime オブジェクトを Ruby の Date オブジェクトと直接比較できます。たとえば、irb で試してみてください。

require 'date'
today = DateTime.new(2013,1,4)
 => #<DateTime: 2013-01-04T00:00:00+00:00 ((2456297j,0s,0n),+0s,2299161j)> 
today == Date.today
=> true

ただし、Rails には独自の DateTime オブジェクト ( APIdock Rails DateTime ) があります。to_date1 つのオプションは、メソッドを使用して Rails オブジェクトを日付に変換することです。

したがって、ヘルパー メソッドは次のようになります。

def todate_datetime(date_time)
  date_time.to_date == Date.today ? "<font color='red'>#{date_time}</font>" : date_time
end

EDIT :設定されている場合は考慮されるため、date_time引数を比較する方が正確かもしれません:DateTime.current.to_dateconfig.time_zone

def todate_datetime(date_time)
  date_time.to_date == DateTime.current.to_date ? "<font color='red'>#{date_time}</font>" : date_time
end
于 2013-01-05T04:20:08.423 に答える