【问题标题】:Get time ago from an date that is saved as a string. ruby rails从保存为字符串的日期获取时间。红宝石导轨
【发布时间】:2020-04-04 02:32:15
【问题描述】:

我还是有点新。

我从 json 数据中保存了一个日期,我将它作为字符串保存在我的数据库中。我的问题是:

有人知道我如何计算日期是多少分钟、小时或天

“2019-12-09T11:06:37.000Z”

这是我数据库中正常日期的样子:2019-12-10 18:28:38.249866

【问题讨论】:

  • 你知道你节省时间的时区吗?
  • 看起来根本问题是您将日期以错误的格式放入数据库中。为什么不先解决这个问题呢?
  • 当数字不一样时,我怎样才能以正确的格式保存它。日期和我的不一样。

标签: ruby-on-rails ruby sqlite date ruby-on-rails-5


【解决方案1】:

如果您想避免做大量数学运算,最简单的方法是使用ActiveSupport::Duration

irb(main):001:0> time = Time.zone.parse("2019-12-09T11:06:37.000Z")
=> Mon, 09 Dec 2019 11:06:37 UTC +00:00
irb(main):002:0> duration = ActiveSupport::Duration.build(Time.zone.now - time)
=> 1 day, 11 hours, 10 minutes, and 31.248518 seconds
irb(main):003:0> duration.parts
=> {:days=>1, :hours=>11, :minutes=>10, :seconds=>31.248518}

【讨论】:

  • 当存在的几乎每个数据库都有真正的日期/时间列时,将显然是 ISO8601 时间戳的内容保存在字符串列中似乎很愚蠢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多