0

现在我正在尝试制作这样的辅助方法。
如何将参数的日期时间与今天的日期进行比较?

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

更新:

看法

<%= today_datetime(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_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
于 2013-01-05T04:20:08.423 回答