Como mostrar o ano atual em vista?


104

Existe uma função que eu possa usar para mostrar o ano atual em uma visualização? eu tentei

<%= Time.now  %>

para tentar mostrar as horas, mas isso não funciona para mim.

Respostas:




44

Acho que a melhor maneira de obter o ano atual considerando o fuso horário do aplicativo é:

Date.current.year

1
Acordado. Além disso, Date.currenté o mesmo que Time.zone.todayse config.time_zoneestiver definido.
Brian de

Esta é a melhor resposta. Date.current é o mais apropriado.
Mario

17

Eu gosto de usar:

Time.zone.now.year

Isso leva em consideração o fuso horário atual (caso você o tenha substituído para um determinado usuário).


6

Apesar de já ter sido respondido, achei que pode ser útil para quem deseja ver os resultados de benchmark para todas as soluções sugeridas.

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)

Agora, pode parecer exagero para algo tão simples como isso, no entanto, de uma perspectiva de otimização simples para um aplicativo de alto rendimento, considerarei o uso Date.today.year

Dito isso, se seu aplicativo é sensível ao fuso horário, talvez Date.currentou Time.zonemétodos baseados sejam sua melhor aposta.

Confira este maravilhoso Railscast de Ryan sobre os fusos horários

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.