นำคำตอบของ Patrick McKenzie ไปอีกเล็กน้อยคุณสามารถสร้างไฟล์ใหม่ในconfig/initializers
ไดเรกทอรีของคุณที่เรียกว่าdate_format.rb
(หรืออะไรก็ได้ที่คุณต้องการ) แล้วใส่มันลงไป:
Time::DATE_FORMATS.merge!(
my_date: lambda { |time| time.strftime("%a, %b #{time.day.ordinalize}") }
)
จากนั้นในรหัสมุมมองของคุณคุณสามารถจัดรูปแบบวันที่ใด ๆ เพียงแค่กำหนดรูปแบบวันที่ใหม่ของคุณ:
My Date: <%= h some_date.to_s(:my_date) %>
มันง่ายใช้งานได้และสร้างได้ง่าย เพียงเพิ่มบรรทัดรูปแบบเพิ่มเติมในไฟล์ date_format.rb สำหรับรูปแบบวันที่ที่แตกต่างกันของคุณ นี่คือตัวอย่างเนื้อมากขึ้น
Time::DATE_FORMATS.merge!(
datetime_military: '%Y-%m-%d %H:%M',
datetime: '%Y-%m-%d %I:%M%P',
time: '%I:%M%P',
time_military: '%H:%M%P',
datetime_short: '%m/%d %I:%M',
due_date: lambda { |time| time.strftime("%a, %b #{time.day.ordinalize}") }
)