渲染自定义json:如何在rails中正确呈现日期格式?

时间:2012-01-23 13:37:23

标签: jquery ruby-on-rails json date

我创建了一个带有日期的自定义json对象。不幸的是,当我想使用jQuery中的日期变成Date对象时,该对象变为无效。日期字符串的情况如下:

  

2011-12-14 00:59:59 +01:00

如果我使用内置的object.to_json渲染它,时间会像这样呈现:

  

2011-12-14T00:59:59 + 01:00

这样我可以将此字符串转换为查询日期对象。

所以我的问题是如何在rails中呈现日期,以便它成为第二种格式。

感谢Markus

3 个答案:

答案 0 :(得分:1)

从资料来源可以看出,to_json的{​​{1}}方法是由ActiveSupport(source here)添加的。

所以你应该在初始化程序(例如DateTime)中修补它,如下所示:

config/initializers/datetime.rb

在这里测试并工作:http://codepad.org/NRzqiJT3

答案 1 :(得分:1)

如果放入初始化程序(例如config / initializers /),以下内容适用于所有主流浏览器和ie7 +(我没有测试ie6)

class ActiveSupport::TimeWithZone
  def as_json(options = {})
    strftime('%Y/%m/%d %H:%M:%S %z')
  end
end

答案 2 :(得分:0)

这是实现类似目标的另一种方式:

class Date
  def as_json(options = {})
    I18n.localize self
  end
end

希望它对某人有帮助。