it-swarm.com.ru

Изменить формат созданного в Rails 3.1?

Я называю дату, когда была создана запись в базовом приложении, работающем на Rails 3.1.

<%= @issue.created_at %>

Выше выводит следующую метку времени:

2011-09-10 14:44:24 UTC

Какой самый простой способ изменить способ отображения? Я хотел бы что-то вроде этого:

10 Sept. 2011

и затем как-то снова вызвать его в другом формате:

14:44

так что я могу назвать это дважды и объединить их вместе:

10 Sept. 2011
14:44

Причина, по которой я хочу вызвать его дважды, а не создавать помощника для форматирования двухстрочной даты/времени, заключается в том, что я могу вызывать дату в некоторых местах и ​​только время в других.

25
dannymcc

Я бы использовал I18n. Посмотрите на некоторые примеры http://guides.rubyonrails.org/i18n.html#adding-date-time-formats . Это чистый и гибкий способ форматирования даты и времени.

13
lucapette

Самое простое, что можно сделать, это использовать функцию strftime.

# Day / Month / Year
@issue.created_at.strftime("%d %b. %Y")
# Hour:Min
@issue.created_at.strftime("%H:%M")

Вы можете поместить эти два вызова в отдельных помощников, если обнаружите, что делаете это много.

76
spike
<%= 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 для легкой настройки, и другой формат даты можно найти здесь

9
Agung Prasetyo

Проверьте http://www.foragoodstrftime.com/ для простого способа настроить форматирование даты/времени @spike

7
akeyva

Ты можешь сделать:

@issue.created_at.to_date.iso8601

1
flyer88

to_s также принимает входной аргумент формата:

http://apidock.com/Rails/ActiveSupport/TimeWithZone/to_s

0
Daniel Korenblum