【问题标题】:Comparing times in Rails在 Rails 中比较时间
【发布时间】:2017-10-21 13:04:14
【问题描述】:

我正在使用这段代码来比较时间:

(time1.to_i - time2.to_i).abs < 5

目的是如果在 5 秒内测量两次,则它们将相等。我用它来比较记录的更新,所以 5 秒作为缓冲区是可以接受的,并在记录仅相隔几秒时停止返回 false 的代码。

有没有更好的方法来做到这一点?

【问题讨论】:

  • 有一个叫做time_difference的宝石。它没有得到积极维护,但很容易遵循和合并。它为您提供如下语法:TimeDifference.between(start_time, end_time).in_years.

标签: ruby-on-rails ruby datetime time


【解决方案1】:

在 Ruby 中,您可以直接减去两个 Time 对象以获得以秒为单位的差异。 Rails 还提供了一些关于整数的便利助手,可以将它们转换为秒数:

(time1 - time2).abs < 5.seconds

如果你知道time2 总是在time1 之后,你可以去掉abs

time2 - time1 < 5.seconds

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 2012-07-08
    • 2018-05-29
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2013-02-04
    相关资源
    最近更新 更多