2011-05-30 101 views
84

有沒有可以用來在視圖中顯示當前年份的功能?我已經嘗試過如何顯示當前年份?

<%= Time.now %> 

要嘗試顯示時間,但這不適用於我。

回答

13

我喜歡用:

Time.zone.now.year 

這是考慮到目前的時區(櫃面你重寫它爲特定的用戶)。

34

我認爲最好的方式來獲得本年度考慮申請時區是:

Date.current.year 
+1

同意。此外,如果設置了「config.time_zone」,則「Date.current」與「Time.zone.today」相同。 – Sooie 2015-06-11 16:39:32

+0

這是最好的答案。 Date.current是最合適的。 – Mario 2017-03-16 19:43:31

0

儘管它已經回答了,我想這可能來方便的,誰想要看看所有建議解決方案的基準測試結果。

require 'benchmark' 

n = 500000 
Benchmark.bm do |x| 
    x.report { n.times do ; Date.today.year; end } 
    x.report { n.times do ; Date.current.year; end } 
    x.report { n.times do ; Time.current.year; end } 
    x.report { n.times do ; Time.zone.now.year; end } 
end 

    user  system  total  real 
0.680000 0.030000 0.710000 ( 0.709078) 
2.730000 0.010000 2.740000 ( 2.735085) 
3.340000 0.010000 3.350000 ( 3.363586) 
3.070000 0.000000 3.070000 ( 3.082388) 

現在,它也許看起來過頂的那樣簡單的東西,但是,從高吞吐量應用程序的簡單優化的角度來看,我會考慮使用Date.today.year

這麼說,如果你的應用程序是時區敏感的,也許Date.currentTime.zone基於方法是你最好的選擇。

看看這個美好的Railscast by Ryan on Time Zones

相關問題