gpt4 book ai didi

ruby-on-rails - Rails to_json 使用与 .to_s 不同的 DATE_FORMATS

转载 作者:行者123 更新时间:2023-12-01 23:04:26 25 4
gpt4 key购买 nike

在我的 rails_defaults.rb 中有以下内容:

Date::DATE_FORMATS[:default] = '%m/%d/%Y'
Time::DATE_FORMATS[:default]= '%m/%d/%Y %H:%M:%S'

为什么以下结果不同:

ruby-1.9.2-p180 :005 > MyModel.find(2).to_json(:only => :start_date)
=> "{\"start_date\":\"2012-02-03\"}"

ruby-1.9.2-p180 :006 > MyModel.find(2).start_date.to_s
=> "02/03/2012"

更重要的是,如何让 to_json 使用 %m/%d/%Y

最佳答案

因为日期的标准 JSON 格式是 %Y-%m-%d 并且除非您覆盖 Date#as_json 否则无法更改它(不要不要这样做,否则您的应用程序将开始行为不端)。

https://github.com/rails/rails/blob/master/activesupport/lib/active_support/json/encoding.rb#L265-273

class Date
def as_json(options = nil) #:nodoc:
if ActiveSupport.use_standard_json_time_format
strftime("%Y-%m-%d")
else
strftime("%Y/%m/%d")
end
end
end

关于ruby-on-rails - Rails to_json 使用与 .to_s 不同的 DATE_FORMATS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com