表示したいものは次のとおりです。
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
Date.to_s
はTime.to_s
と同じではありません。 postdate
はDate
であるため、代わりに strftime
をご覧ください。
postdate.strftime("%B %d, %Y")
または、独自のカスタム日付形式をRailsアプリに追加してください:
Rubyでの日付形式の変換に小さな助けが必要
to_formatted_s 関数には、RailsのDateTime
オブジェクト用の人間が読める一般的なフォーマットがすでにいくつかあります。
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"