rails dates with json
I am implementing a Facebook application and using AJAX/JSON.
However the JSON structures that are returned have this format 2010-05-30T06:14:00Z
.
I'm calling Game.all.to_json
in controller action.
How can I convert them to a normal date format?
Is it easier to do it from the server side or the client side using fbjs? There are a lot of bugs with fbjs.
So i would prefer using a solution from the Server side
using (Active Records
). Like converting the data before sending the JSON
structures.
The way I added my own custom format to the json I was returning was to add a monkey patch to the ActiveSupport TimeWithZone class.
Add a file in the config/initializers folder with the following contents:
class ActiveSupport::TimeWithZone
def as_json(options = {})
strftime('%Y-%m-%d %H:%M:%S')
end
end
With timezone working in all major browsers and ie7+:
class ActiveSupport::TimeWithZone
def as_json(options = {})
strftime('%Y/%m/%d %H:%M:%S %z')
end
end
Rails now has the .as_json
method on the DateTime
object. Life made easier.