Ответ 1
Я бы использовал I18n. Посмотрите на пример http://guides.rubyonrails.org/i18n.html#adding-date-time-formats. Это чистый и гибкий способ форматирования дат и времени.
Я вызываю дату создания записи в базовом приложении с Rails 3.1.
<%= @issue.created_at %>
Вышеуказанная выдает следующую метку времени:
2011-09-10 14:44:24 UTC
Каков самый простой способ изменить способ отображения? Мне хотелось бы что-то вроде этого:
10 Sept. 2011
а затем как-то снова назовите его в другом формате:
14:44
поэтому я могу назвать его дважды и объединить два вместе:
10 Sept. 2011
14:44
Причина, по которой я хочу назвать это дважды, а не создавать помощника для форматирования двухстрочной даты/времени, - это позволить мне назвать дату в некоторых местах и просто время в других.
Я бы использовал I18n. Посмотрите на пример http://guides.rubyonrails.org/i18n.html#adding-date-time-formats. Это чистый и гибкий способ форматирования дат и времени.
Самое простое - использовать функцию strftime
# Day / Month / Year
@issue.created_at.strftime("%d %b. %Y")
# Hour:Min
@issue.created_at.strftime("%H:%M")
Вы можете поместить эти два вызова в отдельные помощники, если вы много делаете.
<%= l(@issue.created_at, :format=>:your_format) %>
в локали YAML (app/config/locale/country_id.yml) вы должны объявить
time:
formats:
your_format: '%d %b. %Y'
your_another_format: '%I:%M'
Форматирование даты должно быть объявлено в вашем файле определения i18n YAML для легкой настройки, а другой формат даты можно найти здесь
Отъезд http://www.foragoodstrftime.com/ для простого способа настройки форматирования даты и времени @spike
Вы можете сделать:
@issue.created_at.to_date.iso8601
to_s также принимает аргумент ввода формата: