【问题标题】:Render custom json: how to render a date format correctly in rails?渲染自定义 json:如何在 Rails 中正确渲染日期格式?
【发布时间】:2012-02-16 20:28:52
【问题描述】:
我创建了一个包含日期的自定义 json 对象。不幸的是,当我想使用 jQuery 中的日期转换为 Date 对象时,该对象变为无效。日期字符串就是这种情况:
2011-12-14 00:59:59 +01:00
如果我用内置的 object.to_json 渲染它,时间会像这样渲染:
2011-12-14T00:59:59+01:00
这样我可以把这个字符串变成一个查询日期对象。
所以我的问题是如何在 Rails 中呈现日期,使其成为第二种格式。
谢谢马库斯
【问题讨论】:
标签:
jquery
ruby-on-rails
json
date
【解决方案1】:
这是实现类似目标的另一种方法:
class Date
def as_json(options = {})
I18n.localize self
end
end
希望它对某人有所帮助。
【解决方案2】:
如果放入初始化程序(例如 config/initializers/),以下内容将适用于所有主要浏览器和 ie7+(我尚未测试 ie6)
class ActiveSupport::TimeWithZone
def as_json(options = {})
strftime('%Y/%m/%d %H:%M:%S %z')
end
end
【解决方案3】:
据我所知,DateTime 的 to_json 方法是由 ActiveSupport (source here) 添加的。
因此,您应该像这样在初始化程序(例如 config/initializers/datetime.rb)中对其进行修补:
class DateTime
def as_json(options = nil)
strftime('%Y/%m/%dT%H:%M:%S%z')
end
end
在这里测试和工作:http://codepad.org/NRzqiJT3