【问题标题】:How to convert the timestamps (created_at) in rails 6?如何在 Rails 6 中转换时间戳(created_at)?
【发布时间】:2020-08-04 13:36:50
【问题描述】:

嘿,我如何在 rails 6 中将这个:2020-08-04 T13:31:44.342Z 转换为这个:2020-08-04?我真的找不到这个问题的答案,因为所有的答案都过时了,不可靠。

我在我的 Vue 前端应用程序中引用了 created_at。

那么我应该在我的迁移中添加什么来显示这样的内容还是我应该在我的前端管理的东西??

我的 createData 迁移:

class CreateData < ActiveRecord::Migration[6.0]
  def change
    create_table :data do |t|
      t.float :temperature
      t.float :windspeed
      t.references :user, foreign_key: true

      t.timestamps
    end
  end
end

【问题讨论】:

  • 也许在序列化或to_json方法中转换数据会更好?你用这样的东西吗?
  • 请不要乱用 Rails 处理 created_at 的方式,这是您必须在前端或返回 api 数据的方式中处理的事情。

标签: ruby-on-rails ruby timestamp


【解决方案1】:

我建议保持 Rails 时间戳不变。它们代表创建和更新的时间戳,应该是DateTime。您希望如何在 Web 中呈现数据是您的前端属性。

在 vue 中,您可以通过过滤器传递时间戳。

检查vue-moment。它为您提供了过滤流行时刻库的功能,您可以使用它以您想要的格式播放时间戳。

<span>{{ created_at | moment("YYYY-MM-DD") }}</span>

【讨论】:

    【解决方案2】:

    使用例如 JavaScript 的 substring 在前端管理日期似乎更容易。

    "2020-08-04 T13:31:44.342Z".substring(0, 10) // "2020-08-04"

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      相关资源
      最近更新 更多