我正在尋找一種方式,找到格式化日期時間(:所有),所以,當我使我的JSON結果,日期時間看起來像格式日期時間查找操作中的Rails 3
「 2011" 年3月20日的
代替
「2011-03-20T04:57:50Z」
沒有人有什麼建議?謝謝。
我正在尋找一種方式,找到格式化日期時間(:所有),所以,當我使我的JSON結果,日期時間看起來像格式日期時間查找操作中的Rails 3
「 2011" 年3月20日的
代替
「2011-03-20T04:57:50Z」
沒有人有什麼建議?謝謝。
我會在客戶端上使用Date.parse(datestring)
來生成一些可用的內容。
Time.now().strftime("%b %d, %Y)
關閉我的頭頂,你可以這樣做:
@posts = Post.all
@posts.all.each do |x|
x.date = x.date.strftime("%b %d, %Y")
end
@posts.to_json
OK,所以要很好地呈現格式化JSON的結果。而不是改變日期的格式,改變它的出路。
class Post
def formatted_created_at
created_at.strftime("%b %d, %Y")
end
def as_json(args={})
super(:methods=>:formatted_created_at, :except=>:date)
end
end
我照你的建議做了,但沒有奏效。這裏是我的控制器和型號http://pastie.org/1693138。謝謝。 – 2011-03-20 17:51:42
@Tri Vuong ..你的輸出是什麼?追加到你的貼子。 (你不想to_json)...你的行爲應該是「responds_with BusinessCard.order(」created_at DESC「)。all) – 2011-03-20 18:35:40
created_at沒有我想要的格式。我將輸出附加到了pastie。 。 – 2011-03-20 20:02:53
工作原理(在Rails 3.1中檢查),把它放到config/initializer/times_format.js中。前兩行修復默認時間格式(例如AR created_at)。第三部分是JSON的猴子補丁。
Date::DATE_FORMATS[:default] = "%Y-%m-%d"
Time::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M:%S"
class ActiveSupport::TimeWithZone
def as_json(options={})
strftime('%Y-%m-%d %H:%M:%S')
end
end
這對我有用。Rails 3.1。 – 2012-12-26 16:57:31
看你用的是jbuilder嗎?而例如index.json.jbuilder
json.array!(@textstrings) do |textstring|
json.extract! textstring, :id, :text
json.created_at textstring.created_at.to_formatted_s(:short)
json.url textstring_url(textstring, format: :json)
end
在這個例子中
我使用的方法.to_formatted_s
json.created_at textstring.created_at.to_formatted_s(:short
和我有
[{"id":1,"text":"liveasda","created_at":"17 Nov 12:48","url":"http://localhost:5555/textstrings/1.json"},{"id":2,"text":"123","created_at":"17 Nov 14:26","url":"http://localhost:5555/textstrings/2.json"},
不,它返回int – hipertracker 2011-09-20 02:24:54
@hipertracker無它沒有。 'Date.parse(datestring).class'返回'Date'常量。 'Date.parse(datestring).strftime(「%B,%Y」)'返回'2011年3月' – Oleander 2011-09-20 10:59:40
處理json與某些js客戶端通信時遇到一些問題 使用此解決方案 在幾秒鐘內返回「int」 1970年1月1日 – ZMorek 2011-09-25 04:52:25