比较 Ruby on Rails 中的 DateTime 对象



我正在尝试将从活动记录对象访问的日期时间值与当前时间进行比较。但是找不到任何内置方法来执行此操作。我试过使用

    DateTime.now > @model_name.schedule_time

但这并没有给出预期的结果(可能是字符串比较)。

有没有准确的方法可以与当前时间进行比较。

在不知道@model_name.schedule_time类型的情况下回答这个问题有点棘手。

但是,在 rails 中,ActiveSupport提供了#past?#future?的方法,以DateDateTimeTime实例,因此应该可以解决您的问题:

Date.yesterday.past? => true
Time.now.end_of_day.future? => true
DateTime.now.beginning_of_day.past? => true

如果@model_name.schedule_time没有响应这些方法,那么它就不是这些类型之一,这解释了您尝试的比较不起作用。

最新更新