Як показувати поточний рік з огляду?


104

Чи є функція, яку я можу використовувати, щоб показати поточний рік у поданому вигляді? я намагався

<%= Time.now  %>

спробувати показати час, але це не працює для мене.

Відповіді:




44

Я думаю, що найкращий спосіб отримати поточний рік, враховуючи часовий пояс програми :

Date.current.year

1
Домовились. Крім того, Date.currentце те саме, що Time.zone.todayякщо config.time_zoneвстановлено.
Брайан

Це найкраща відповідь. Date.current є найбільш підходящим.
Маріо

17

Мені подобається використовувати:

Time.zone.now.year

При цьому враховується поточний часовий пояс (якщо ви його замінили для певного користувача).


6

Незважаючи на те, що на нього вже відповіли, я вважав, що це може стати в нагоді тим, хто хоче переглянути результати орієнтирів для всіх запропонованих рішень.

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на основі методів найкраща ставка.

Перевірте цей чудовий Railscast від Райана на часових зонах

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.