时间戳范围内的时间戳比较?

时间:2011-01-20 21:28:21

标签: ruby-on-rails ruby timestamp date-range

我目前在RubyOnRails数据库中有2个时间戳字段,定义为:

starttime:timestamp
endtime:timestamp

我想在我的控制器中编写一个简单的函数,如果它位于starttime&的范围内,则当前时间返回TRUE。结束时间即可。

我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

假设你有这些的模型设置,你可以这样做:

def currently_in_range(model)
   now = DateTime.now
   model.starttime < now && now < model.endtime
end

你应该把它放在模特的课堂上。类似的东西:

class Thing < ActiveRecord::Base
   ...
   def current?
     now = DateTime.now
     starttime < now && now < endtime
   end
   ...
 end

然后在您的控制器中,您只需拨打model.current?

即可

答案 1 :(得分:1)

class YourModel < ActiveRecord::Base
  def active?
    (starttime..endtime) === Time.now.to_i
  end
end

class YourController < ApplicationController
  def show
    @your_model = YourModel.first
    @your_model.active?
  end
end