I am finding myself repeating typing many strftime which I defined.
Having watch Ryan Bates's railscasts ep 32/33( I think), I created a custom option for the to_s method as in Time.now.to_s, so that I can do Time.now.to_s(:sw), where :sw is my custom method, to retrieve "23 Sep 2010, 5:00PM" for example.
But the problem is, I don't know where to put #sw's definition. Should it be in a file in in the initializer folder? Or should it go in application.rb?
Thanks!
Use "time" instead of "date" in your locales file, since Rails timestamps are datetimes.
in config/locales/en.yml
en:
time:
formats:
default: "%Y/%m/%d"
short: "%b %d"
long: "%B %d, %Y"
in app/views/posts/show.html.haml
= l post.updated_at
= l post.created_at, :format => :long
I have a file config/initialisers/time_formats.rb
containing:
...
Time::DATE_FORMATS[:posts] = "%B %d, %Y"
Time::DATE_FORMATS[:published] = "%B %Y"
...
You just need to restart your server to have the changes picked up.
Use Rails I18n API.
# config/locales/en.yml
en:
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"
# in views
= l post.updated_at # will use default format of date in locales yml file
see about I18n API
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With