Wie kann das aktuelle Jahr angezeigt werden?

104

Gibt es eine Funktion, mit der ich das aktuelle Jahr in einer Ansicht anzeigen kann? Ich habe versucht

<%= Time.now  %>

zu versuchen, die Zeit zu zeigen, aber das funktioniert bei mir nicht.

Zakoff
quelle

Antworten:

44

Ich denke, der beste Weg, um das aktuelle Jahr unter Berücksichtigung der Bewerbungszeitzone zu erhalten, ist:

Date.current.year
freemanoid
quelle
1
Einverstanden. Auch Date.currentist das gleiche wie Time.zone.todaywenn config.time_zoneeingestellt ist.
Brian
Dies ist die beste Antwort. Date.current ist am besten geeignet.
Mario
17

Ich benutze gerne:

Time.zone.now.year

Dies berücksichtigt die aktuelle Zeitzone (falls Sie sie für einen bestimmten Benutzer überschrieben haben).

Stebooks
quelle
6

Obwohl es bereits beantwortet wurde, dachte ich, dass es für diejenigen nützlich sein könnte, die die Benchmark-Ergebnisse für alle vorgeschlagenen Lösungen betrachten möchten.

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)

Nun mag es für etwas so Einfaches vielleicht übertrieben erscheinen, aber aus einer einfachen Optimierungsperspektive für eine Anwendung mit hohem Durchsatz werde ich die Verwendung in Betracht ziehen Date.today.year

Wenn Ihre Anwendung zeitzonensensitiv ist, sind vielleicht Date.currentoder Time.zonebasierte Methoden die beste Wahl.

Schauen Sie sich diesen wunderbaren Railscast von Ryan in Time Zones an

Darkfish
quelle