轨道上的红宝石 - 如何将参数的日期时间与今天的日期进行比较?



现在我正在尝试制作这样的helper方法
如何将争论的日期时间与今天的日期进行比较?

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

从ruby 1.9.2开始,您可以直接比较ruby中的DateTime对象和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

EDIT:将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

相关内容

  • 没有找到相关文章

最新更新