Formatting a Date as words in Rails

Viewed 11529

So I have a model instance that has a datetime attribute. I am displaying it in my view using:

<%= @instance.date.to_date %> 

but it shows up as: 2011-09-09

I want it to show up as: September 9th, 2011

How do I do this?

Thanks!

5 Answers

There is an easier built-in method to achieve the date styling you are looking for.

<%= @instance.datetime.to_date.to_formatted_s :long_ordinal %>

The to_formatted_s method accepts a variety of format attribute options by default. For eaxmple, from the Rails API:

date.to_formatted_s(:db)            # => "2007-11-10"
date.to_s(:db)                      # => "2007-11-10"

date.to_formatted_s(:short)         # => "10 Nov"
date.to_formatted_s(:long)          # => "November 10, 2007"
date.to_formatted_s(:long_ordinal)  # => "November 10th, 2007"
date.to_formatted_s(:rfc822)        # => "10 Nov 2007"

You can see a full explanation here.

Related