Làm thế nào để hiển thị năm hiện tại trong chế độ xem?


104

Có chức năng nào tôi có thể sử dụng để hiển thị năm hiện tại trong chế độ xem không? Tôi đã thử

<%= Time.now  %>

để thử và hiển thị thời gian nhưng điều này không hiệu quả với tôi.

Câu trả lời:




44

Tôi nghĩ cách tốt nhất để lấy năm hiện tại xem xét múi giờ ứng dụng là:

Date.current.year

1
Đã đồng ý. Ngoài ra, Date.currentgiống như Time.zone.todayif config.time_zoneđược thiết lập.
Brian

Đây là câu trả lời tốt nhất. Date.current là thích hợp nhất.
Mario

17

Tôi thích sử dụng:

Time.zone.now.year

Điều này tính đến múi giờ hiện tại (trong trường hợp bạn đã ghi đè nó cho một người dùng cụ thể).


6

Mặc dù nó đã được trả lời, tôi nghĩ rằng nó có thể hữu ích cho những người muốn xem kết quả điểm chuẩn cho tất cả các giải pháp được đề xuất.

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)

Bây giờ, nó có thể có vẻ vượt trội đối với một cái gì đó đơn giản như vậy, tuy nhiên, từ góc độ tối ưu hóa đơn giản cho một ứng dụng thông lượng cao, tôi sẽ xem xét sử dụng Date.today.year

Như vậy, nếu ứng dụng của bạn nhạy cảm với Múi giờ, có lẽ Date.currenthoặc Time.zonecác phương pháp dựa trên là lựa chọn tốt nhất cho bạn.

Hãy xem Railscast tuyệt vời này của Ryan trên Time Zones

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.