2013-01-05 119 views
0

現在我試圖做這樣的幫手方法。
如何比較參數的日期時間和今天的日期?如何比較參數的日期時間和今天的日期?

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

UPDATE:

視圖

<%= 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

從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 
+0

感謝您的回答。我試過你的代碼,但它只返回**:date_time **,即使今天是肯定的。我更新了我的問題。你能檢查一下嗎? – Foo

+0

檢查我更新的答案。那樣有用嗎? –

+0

謝謝。太棒了! – Foo

相關問題