我需要產生的Rails的日期,看起來像這樣:如何在Rails中將日期格式化爲JSON?
/日期(1294268400000)/
我已經試過日期時間,to_i,to_json的各種組合,但從來沒有設法得到/Date()/
的事情。
我是否必須以毫秒爲單位獲取我的日期,然後手動包裝/Date(
和)/
,或者是否有內置方法?
我需要產生的Rails的日期,看起來像這樣:如何在Rails中將日期格式化爲JSON?
/日期(1294268400000)/
我已經試過日期時間,to_i,to_json的各種組合,但從來沒有設法得到/Date()/
的事情。
我是否必須以毫秒爲單位獲取我的日期,然後手動包裝/Date(
和)/
,或者是否有內置方法?
什麼(紅寶石1.9.x的)?:
Time.now.strftime("/Date(%s%L)/")
=> "/Date(1335280866211)/"
這是UNIX Epoch(自1970-01-01以來的秒數)對不對?怎麼樣使用DateTime#strftime方法?
# Taken from the Ruby documentation
seconds_since_1970 = your_date.strftime("%s")
UPDATE:OK,這是毫秒,根據您可以使用your_date.strftime("%Q")
得到毫秒的文件(但我沒有嘗試過)。
謝謝你的回答,但我已經知道了毫秒級的事情。我的問題是關於'/ Date('和')/'的事情。我不知道這是否是標準的或者如果我不得不手動添加它。 – Pierre 2012-04-24 12:54:37
你應該嘗試
new Date(posixMillisecondsHere)
第一。 MDN說調用構造上下文之外Date
功能(即,不帶new
)將始終返回包含格式化的日期而不是Date
對象的字符串。
嚴格地說,當你這樣做,你寫JavaScript和JSON不是。 JSON不能包含Date對象。
2.1。值
一個JSON值必須是一個對象,數組,數字或字符串,或者 一個以下三種文字名稱:
false null true
如果你想要把一個日期到什麼是嚴格考慮使用JSON,然後將其還原出來,您必須選擇某種使用JSON基元的方法(例如,對象,數組,數字,字符串等)來編碼日期。
如果你想獲得一個約會回來了JSON的,不管你解析JSON必須明白,你用來編碼日期的約定。
希望這些是可信和/或官方的足夠幫助。
這樣的事情:
在你的配置/ en。YML文件:
en:
time:
formats:
json: "/Date(%s%L)/"
,比認爲:
<%= l(Time.now, :format => :json) %>
請注意,您將需要訪問中呈現JSON方法的幫手。所以如果你使用ActiveRecord#to_json方法來生成jsons,它將不起作用。
謝謝(我見過這個),但我沒有試圖讀取或解析這種格式,而是要生成它。所以從Date.new(2012,1,1),我怎麼得到我的問題給出的格式表示? – Pierre 2012-03-03 21:23:22