gpt4 book ai didi

ActiveRecord 数据库中的 Ruby 日期时间格式

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:30 24 4
gpt4 key购买 nike

我需要以这种格式保存日期时间属性:YYYY-MM-DD HH:SS。我在数据库中有一个日期时间字段:

schema.rb:

create_table "stats", force: :cascade do |t|
...
t.datetime "check_time"
end

params 中的数据如下所示:

{"check_time"=>"2018-01-02 04:57"}

但是它在数据库中保存为 2018-01-02 04:43:00 UTC: enter image description here

Stat.last.check_time #=> check_time: "2018-01-02 04:43:00"

(所以最后有几秒钟)

然后在我的 "/status" 端点中,我将统计数据作为 JSON 返回:

get '/status' do
{ stats: Stat.last }.to_json
end

然后 check_time 看起来像这样:

"check_time":"2018-01-02T04:43:00.000Z"

这是怎么回事?我在这里错过了什么吗?数据库中是否有错误的数据类型字段?

最佳答案

ActiveRecord 将列转换为 DateTime 对象,由 ActiveSupport 扩展(融入 Rails)

你要查找的是 strftimeto_formatted_s(别名为 to_s。)

引用这里http://api.rubyonrails.org/v5.1/classes/DateTime.html#method-i-to_formatted_shttp://foragoodstrftime.com

没有必要乱用 ActiveRecord 编写器方法,除非您真的知道自己在做什么,否则永远不要那样做。您不需要以特定格式将其保存到数据库中——当时是一种非标准格式——只需在需要时对其进行格式化并保留数据库的日期时间式列的所有优点。

关于ActiveRecord 数据库中的 Ruby 日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055488/

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