Подтвердить что ты не робот

Форматирование объекта даты для отображения прочитанной человеком даты

Здесь я хотел бы отображать:

May 13, 2012

Здесь отображается следующее:

2012-05-13

Я искал некоторые ответы, и это привело меня к Форматирование дат и поплавков в Ruby", где упоминается возможное решение:

<p class="date"><%= @news_item.postdate.to_s("%B %d, %Y") %></p>

Однако это не изменяет вывод вообще. Ошибок отладки или исключений не производится.

Я могу это сделать, и он отлично работает:

<p class="date"><%= Time.now.to_s("%B %d, %Y") %></p>

Вот мой файл миграции (чтобы узнать, какой тип данных я использовал):

class CreateNewsItems < ActiveRecord::Migration
  def change
    create_table :news_items do |t|

      t.date :postdate

      t.timestamps
    end
  end
end
4b9b3361

Ответ 2

Функция to_formatted_s уже имеет некоторые обычные читаемые пользователем форматы для объектов DateTime в Rails.

datetime.to_formatted_s(:db)            # => "2007-12-04 00:00:00"
datetime.to_formatted_s(:short)         # => "04 Dec 00:00"
datetime.to_formatted_s(:long)          # => "December 04, 2007 00:00"
datetime.to_formatted_s(:long_ordinal)  # => "December 4th, 2007 00:00"
datetime.to_formatted_s(:rfc822)        # => "Tue, 04 Dec 2007 00:00:00 +0000"
datetime.to_formatted_s(:iso8601)       # => "2007-12-04T00:00:00+00:00"