Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change date format in the view to dd/mm/yyyy

The default date format in Ruby is yyyy-mm-dd, but I needed them to be dd/mm/yyyy in the view

I have wrote a date_format file in config/initializers as:

Time::DATE_FORMATS.merge!( :uk_format => '%m/%d/%Y')

This didn't work since I need to call date.to_s(:uk_format) in order to use this format. But since I'm using <%= f.text_field :paymentDate %> to display the date, I'm not sure I can add to_s to this case.

Can someone help me out please.


Edit 1

Actually date.to_s(:uk_format) doesn't work either, how do I use initializer properly.....?

like image 936
Souloikj Avatar asked Mar 14 '11 19:03

Souloikj


2 Answers

See: Change default Ruby Time format

Adapted my answer linked to above for the Date and format specified:


Since you're using Rails, take advantage of the I18n support: http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

# config/locales/en.yml
en:
  date:
    formats:
      default: "%d/%m/%Y"

Then you can call I18n.l Date.today to get out a formatted date. Or in your view, you can use <%= l @foo.created_at %>.

like image 186
coreyward Avatar answered Oct 14 '22 08:10

coreyward


Try this instead:

Time::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'})
Date::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'})
like image 2
Artem Kalinchuk Avatar answered Oct 14 '22 08:10

Artem Kalinchuk