2012-08-06 24 views
24

gösterilecek ı görüntülemek istediğiniz budur:bir tarih nesnesi biçimlendirme bir insan okunabilir tarih Burada

May 13, 2012 

İşte görüntülenmekte olduğunu ne:

2012-05-13 

bazı cevaplar aradık ve led me "Formatting Dates and Floats in Ruby", bu olası bir çözüm söz nerede:

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

Ancak bu inci değişmez e çıktı. Hata ayıklama hataları veya istisnalar yok.

bunu yapabilirim ve mükemmel çalışıyor: İşte

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

benim göç dosyasıdır (Ne kullanılan veri türü görmek için):

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

     t.date :postdate 

     t.timestamps 
    end 
    end 
end 

cevap

44

Date.to_sTime.to_s aynı değildir . Zaten
Need small help in converting date format in ruby

+0

Ayrıca bkz - http://www.ruby-doc.org/core-1.9.3/Time.html#method-i-strftime – JGrubb

+8

Bir küçük not: 'strftime ("% B% -d ,% Y "), insan okunabilirliği için biraz daha hoş. '% -d' önde gelen 0'ı, yani 06 Mayıs 2013 => 6 Mayıs 2013'ü kaldırır. –

29

to_formatted_s fonksiyonu: sizin Raylar uygulamasına kendi özel tarih formatı eklemek için

postdate.strftime("%B %d, %Y") 

Hatta bak: Sizin postdate bu nedenle bunun yerine strftime bakmak isteyebilirsiniz, bir Date olduğunu Rails'deki DateTime nesneleri için bazı ortak insan okunabilir formatlara sahiptir.

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" 
+5

, _to_s_ takma addır. –

İlgili konular