Mevcut yıl görünümde nasıl gösterilir?


104

Mevcut yılı bir görünümde göstermek için kullanabileceğim bir işlev var mı? denedim

<%= Time.now  %>

denemek ve göstermek için ama bu benim için çalışmıyor.

Yanıtlar:




44

Bence uygulama saat dilimini dikkate alarak cari yılı almanın en iyi yolu :

Date.current.year

1
Kabul. Ayrıca, Date.currentaynı Time.zone.todayeğer config.time_zoneayarlanır.
Brian

Bu en iyi cevap. Date.current en uygun olanıdır.
Mario

17

Kullanmayı seviyorum:

Time.zone.now.year

Bu, mevcut saat dilimini dikkate alır (belirli bir kullanıcı için onu geçersiz kıldıysanız).


6

Zaten yanıtlanmış olmasına rağmen, önerilen tüm çözümler için kıyaslama sonuçlarına bakmak isteyenler için kullanışlı olabileceğini düşündüm.

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)

Şimdi, belki de bu kadar basit bir şey için üst sıralarda görünebilir, ancak, yüksek verimli bir uygulama için basit bir optimizasyon perspektifinden, kullanmayı düşüneceğim Date.today.year

Öyle söylendi, eğer başvurunuz Saat Dilimine duyarlıysa, belki Date.currentveya Time.zonetemel yöntemler en iyi seçeneğinizdir.

Time Zones'da Ryan tarafından hazırlanan bu harika Railscast'e göz atın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.