Сравнение меток времени в диапазоне меток времени? - PullRequest
3 голосов
/ 21 января 2011

В настоящее время в моей базе данных RubyOnRails есть 2 поля отметок времени, определенные как:

starttime:timestamp
endtime:timestamp

Я хочу написать простую функцию в моем контроллере, которая будет принимать текущее время и возвращать TRUE, если оно лежит в диапазоне времени начала и окончания .

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 21 января 2011

Предполагая, что у вас есть модель для них, вы можете сделать что-то вроде этого:

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 голос
/ 21 января 2011
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
...