【问题标题】: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】:

      据我所知,DateTimeto_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

      【讨论】:

        猜你喜欢
        • 2022-01-10
        • 2011-07-14
        • 1970-01-01
        • 2011-05-05
        • 2019-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-28
        相关资源
        最近更新 更多