【问题标题】:Time diff in Ruby in terms of minuteRuby 中的时间差异(以分钟为单位)
【发布时间】:2016-07-31 19:22:54
【问题描述】:

我正在研究 Ruby 中的 datediff。我正在查询数据库,我得到了以下格式的 createdDate 结果:

2016-04-10T19:54:44.000Z.

我的任务是检查 createdDate 和当前时间的差异是否大于 30 分钟。当我以 UTC 格式创建当前时间时:

utctime = Time.now.utc

我得到这样的结果;

2016-04-10 19:59:57 UTC

我的问题是:我从数据库中获得的 createdDate 有 T 和 .000Z。在其中,任何简单的方法都可以比较它们以找出 30 分钟的差异。

因为现在,我打算改变:

带有空格和 .000Z 的 T。使用 UTC 使它们具有相同的格式。

【问题讨论】:

  • 那是什么数据库?驼峰式名称 (createdDate) 及其类型(字符串?)是不寻常的。此外,使用像 Active Record 这样的 ORM 不是更容易吗?

标签: ruby-on-rails ruby database datetime rubygems


【解决方案1】:

您可以对Time 对象使用标准的- 运算符:

time_diff = Time.parse('2016-04-10T19:54:44.000Z') - utctime #in seconds
result = (time_diff / 60).abs > 30 #true or false

【讨论】:

  • 非常感谢,这正是我想要的,但对于第二部分:我更喜欢使用:result = (parsed_time-utctime.to_i).abs.min
  • 这是时间的一个组成部分。 tutorialspoint.com/ruby/ruby_date_time.htm 但我不确定它是否正确使用,因为我是 Ruby 新手
  • @GökhanAkduğan,在这种情况下不正确,resultFloat
  • @GökhanAkduğan,与Integer相同
  • parse 方法如何实现我正在处理 UTC 时间?
猜你喜欢
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多