0

我正在从 ruby​​ on rails 中的数据库中检索数据。我必须在控制器中使用新的格式化日期更新检索到的日期。
像这样的东西:-

   @events = 'My Query.'
   @events.each do |eventdata|
      # Since the date is in utc i have to convert it in users time zone.
      eventdata.start_date = eventdata.start_date.strftime("%Y-%m-%d %H:%M:%S")
    end

但它不起作用。在这方面需要一些帮助。

4

2 回答 2

2

您无法更改字段的格式,它是 DateTime,您必须为此使用一种方法

def formated_start_date
  start_date.strftime("%Y-%m-%d %H:%M:%S")
end

但是,您可以更改所有数据库记录的日期时间格式,方法是创建文件 config/initializers/date_time_formats.rb 并添加一些内容,例如

Time::DATE_FORMATS[:default] = "%Y-%M-%d %H:%M:%S"
于 2012-12-07T06:57:50.470 回答
2

这是一个猴子补丁,用于在转换为 json 时格式化所有 DateTimes 的日期:

class ActiveSupport::TimeWithZone
  def as_json(options = {})
      strftime('%Y-%m-%d %H:%M:%S')
  end
end

穿上它

/config/initializers/json_date_path.rb

就这样。

于 2012-12-07T07:44:58.343 回答