I am implementing a Facebook application and using AJAX/JSON.
However the JSON structures that are returned have this format 2010-05
Definitely easier to do it on the server side. You can do a gsub regex to put it into the format you want, or a time.strftime, then generating your json with that string.
Rails now has the .as_json
method on the DateTime
object. Life made easier.
If you want to do this with client-side javascript, you can parse individual dates with something like this:
prettyDate = function(dateString) {
var day, formatted, jsDate, month;
jsDate = new Date(dateString);
day = jsDate.getMonth() + 1 < 10 ? "0" + (jsDate.getMonth() + 1) : "" + (jsDate.getMonth() + 1);
month = jsDate.getDate() < 10 ? "0" + (jsDate.getDate()) : "" + (jsDate.getDate());
formatted = "" + day + "/" + month + "/" + (jsDate.getFullYear());
return formatted;
};
You'll need some additional code if your needing to format time of course.
You can override method as_json in your model as:
class Game
def as_json(options = {})
super.merge(time: time.strftime('%d.%m.%Y %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
Time.parse < datetime >
simples.