¿Existe alguna función que pueda usar para mostrar el año actual en una vista? He intentado¿Cómo mostrar el año actual a la vista?
<%= Time.now %>
para intentar y mostrar el tiempo, pero esto no funciona para mí.
¿Existe alguna función que pueda usar para mostrar el año actual en una vista? He intentado¿Cómo mostrar el año actual a la vista?
<%= Time.now %>
para intentar y mostrar el tiempo, pero esto no funciona para mí.
<%= Time.current.year %>
me gusta usar:
Time.zone.now.year
Esto tiene en cuenta la zona horaria actual (en caso de haber anulado por un usuario en particular).
Prefiero usar la clase Date para obtener el año que la clase Time (si solo necesita la fecha, no necesita considerar horas, minutos y segundos).
<%= Date.today.year %>
c.f. http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today
Creo que la mejor manera de conseguir el año en curso teniendo en cuenta la aplicación zona horaria es:
Date.current.year
A pesar de que ya ha sido contestada, pensé que podría venir a mano para aquellos que quieren mirar 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 puede parecer exagerado para algo tan simple como eso, sin embargo, desde una simple perspectiva de optimización para una aplicación de alto rendimiento, voy a considerar el uso de Date.today.year
lo dijo, si su la aplicación es sensible a la zona horaria, quizás Date.current
o Time.zone
métodos basados son su mejor opción.
Mira esta maravillosa Railscast by Ryan on Time Zones
De acuerdo. Además, 'Date.current' es lo mismo que' Time.zone.today' si 'config.time_zone' está configurado. – Sooie
Esta es la mejor respuesta. Date.actual es el más apropiado. – Mario