2012-01-23 43 views
2

我創建一個自定義JSON對象的日期。不幸的是,當我想在jQuery中使用日期變成Date對象時,對象變爲無效。這是日期字符串等的情況:渲染自定義json:如何在rails中正確渲染日期格式?

2011-12-14 0時59分59秒+01:00

如果我用內置的object.to_json時間獲取呈現使它像這樣:

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

這樣我可以在一個查詢日期對象把這個字符串。

所以我的問題是如何在rails中呈現日期,以便它成爲第二種格式。

由於馬庫斯

回答

1

據我可以從源看到的,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

1

下面將在所有主要的瀏覽器和IE7 +工作(我(如config/initializers /)

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

下面是另一種實現類似目標的方法:

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

希望它有助於某人。

+0

似乎是一個整潔的解決方案。謝謝。 –