¿Cómo mostrar el año actual a la vista?


104

¿Hay alguna función que pueda usar para mostrar el año actual en una vista? Yo he tratado

<%= Time.now  %>

para intentar mostrar la hora, pero esto no me funciona.

Respuestas:




44

Creo que la mejor manera de obtener el año actual considerando la zona horaria de la aplicación es:

Date.current.year

1
Convenido. Además, Date.currentes lo mismo que Time.zone.todaysi config.time_zoneestá configurado.
Brian

Esta es la mejor respuesta. Date.current es el más apropiado.
Mario

17

Me gusta usar:

Time.zone.now.year

Esto tiene en cuenta la zona horaria actual (en caso de que la haya anulado para un usuario en particular).


6

A pesar de que ya se ha respondido, pensé que podría ser útil para aquellos que quieran ver los resultados de referencia para todas las soluciones 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)

Ahora, tal vez pueda parecer exagerado para algo tan simple como eso, sin embargo, desde una perspectiva de optimización simple para una aplicación de alto rendimiento, consideraré usar Date.today.year

Dicho esto, si su aplicación es sensible a la zona horaria, tal vez Date.currento los Time.zonemétodos basados ​​sean su mejor opción.

Mira este maravilloso Railscast de Ryan en Time Zones

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.