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.

Jawaban:




44

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

Date.current.year

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).


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.