首页 > 解决方案 > Rails 时间列不尊重分钟

问题描述

我在 Rails 6 中的一个模型上有一个Time专栏。我在数据库中保存的时间与strftime. 这是我的byebug输出:

(byebug) record.end
Fri, 31 Dec 1999 18:00:00 CST -06:00
(byebug) record.end.strftime("%I:%m %P")
"06:12 pm"

如您所见,除非我打电话,否则会议记录不会得到尊重strftime。我怎样才能解决这个问题?我希望计算分钟数,record.end以便我可以使用该列进行计算。目前,一切都休息 12 分钟。

这是我为使其成为Time专栏而进行的迁移。该列最初是一个DateTime.

class ChangeStartAndEndColumnTypesOnTimeRecord < ActiveRecord::Migration[6.0]
  def change
    change_column :time_records, :start, :time
    change_column :time_records, :end, :time
  end
end

标签: ruby-on-railsrubyruby-on-rails-6

解决方案


一个常见的错误,%m给出了月份。您需要使用%M几分钟。


推荐阅读