现在我正试图制作这样的辅助方法 如何将参数的日期时间与今天的日期进行比较?
def todate_datetime(date_time)
date_time = Date.today ? "<font color='red'>#{date_time}</font>" : date_time
end
更新
查看
&lt;%= today_datetime(community_topic.updated_at)%&gt;
助手
def today_datetime(date_time)
date_time == Date.today ? "<font color='red'>#{date_time.to_s(:ct)}</font>" : date_time.to_s(:ct)
end
答案 0 :(得分: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_date
方法将Rails对象转换为日期
那么帮助器方法可能如下所示:
def todate_datetime(date_time)
date_time.to_date == Date.today ? "<font color='red'>#{date_time}</font>" : date_time
end
编辑:将date_time
参数与DateTime.current.to_date
进行比较可能更为准确,因为如果设置为config.time_zone
,则考虑def todate_datetime(date_time)
date_time.to_date == DateTime.current.to_date ? "<font color='red'>#{date_time}</font>" : date_time
end
:
{{1}}