Bagaimana cara menampilkan tampilan tahun ini?

104

Apakah ada fungsi yang dapat saya gunakan untuk menunjukkan tahun ini dalam sebuah tampilan? saya telah mencoba

<%= Time.now  %>

untuk mencoba dan menunjukkan waktu tetapi ini tidak berhasil untuk saya.

Zakoff
sumber

Jawaban:

44

Menurut saya cara terbaik untuk mendapatkan tahun ini dengan mempertimbangkan zona waktu aplikasi adalah:

Date.current.year
freemanoid
sumber
1
Sepakat. Juga, Date.currentsama seperti Time.zone.todayjika config.time_zonedisetel.
Brian
Ini jawaban terbaik. Date.current adalah yang paling tepat.
Mario
17

Saya suka menggunakan:

Time.zone.now.year

Ini memperhitungkan zona waktu saat ini (jika Anda telah menimpanya untuk pengguna tertentu).

stebooks
sumber
6

Meskipun itu sudah dijawab, saya pikir ini mungkin berguna bagi mereka yang ingin melihat hasil benchmark untuk semua solusi yang disarankan.

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)

Sekarang, mungkin terlihat berlebihan untuk sesuatu yang sederhana, namun, dari perspektif pengoptimalan sederhana untuk aplikasi throughput tinggi, saya akan mempertimbangkan untuk menggunakan Date.today.year

Jadi, jika aplikasi Anda sensitif terhadap Zona Waktu, mungkin Date.currentatau Time.zonemetode berbasis adalah pilihan terbaik Anda.

Lihat Railscast indah ini oleh Ryan di Zona Waktu

Darkfish
sumber