2014-01-09 17 views
0

有以下任務:我需要在db(PostgreSQL)中存儲一些時間間隔;例如,下午1點 - 下午2點,以便我可以測試某段時間是否存在某個時間間隔。我應該如何正確地做到這一點?可能會有一些寶石嗎?感謝它。如何在Rails中定義時間間隔?

回答

0

可以保存的列@Santosh說,然後如果你需要檢查的東西對一個時間段你可以使用這個有用的類:

Time-of-day range in Ruby?

class TimeRange 
    private 

    def coerce(time) 
     time.is_a? String and return time 
     return time.strftime("%H:%M") 
    end 

    public 

    def initialize(start,finish) 
     @start = coerce(start) 
     @finish = coerce(finish) 
    end 

    def include?(time) 
     time = coerce(time) 
     @start < @finish and return (@[email protected]).include?(time) 
     return !(@[email protected]).include?(time) 
    end 
end 

可以使用這種方式:

irb(main):013:0> TimeRange.new("02:00","01:00").include?(Time.mktime(2010,04,01,02,30)) 
=> true 
irb(main):014:0> TimeRange.new("02:00","01:00").include?(Time.mktime(2010,04,01,01,30)) 
=> false 
irb(main):015:0> TimeRange.new("01:00","02:00").include?(Time.mktime(2010,04,01,01,30)) 
=> true 
irb(main):016:0> TimeRange.new("01:00","02:00").include?(Time.mktime(2010,04,01,02,30)) 
=> false