보기에서 현재 연도를 표시하는 데 사용할 수있는 기능이 있습니까? 나는 시도했다
<%= Time.now %>
시간을 보여 주려고하지만 이것은 저에게 효과가 없습니다.
답변
<%= Time.current.year %>
답변
Time 클래스보다 연도를 얻기 위해 Date 클래스를 사용하고 싶습니다 (Date 만 필요한 경우 시간, 분 및 초를 고려할 필요가 없습니다).
<%= Date.today.year %>
cf http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today
답변
신청 시간대를 고려 하여 올해를 얻는 가장 좋은 방법 은 다음과 같습니다.
Date.current.year
답변
나는 사용하고 싶다 :
Time.zone.now.year
이것은 현재 시간대를 고려합니다 (특정 사용자에 대해 재정의 한 경우).
답변
이미 답변을 받았음에도 불구하고 모든 제안 된 솔루션에 대한 벤치 마크 결과를보고 싶은 사람들에게 유용 할 것이라고 생각했습니다.
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)
이제는 그렇게 간단한 것으로 보일 수 있지만 처리량이 많은 애플리케이션에 대한 간단한 최적화 관점에서 볼 때 Date.today.year
애플리케이션이 시간대에 민감한 경우 아마도 Date.current
또는 Time.zone
기반 방법이 최선의 방법입니다.
시간대에 대한 Ryan의 멋진 Railscast를 확인하세요.