我如何在红宝石中代​​表早晨和午夜的时间?

时间:2013-07-22 06:48:46

标签: ruby parsing datetime time

我需要使用morningmidnight等简单方法存储和检索餐厅时间。我现在在做的是:

def morning
    Time.new("6:30 am")
end

def midnight
    Time.new("12:00 am")
end

我现在可以比较时间,但这似乎是错误的方法,然后我不知道如何读取这些时间值的方法,如:

    def open?(time)
        time >= morning && time <= midnight 
    end

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

使用chronic gem,我能够做到这一点:

    def opens_at
        morning
    end

    def closes_at
        midnight
    end

    def open?(time)
        Chronic.parse(time) >= morning && Chronic.parse(time) < midnight
    end

    private
    def morning
        Chronic.parse("6:30 am")
    end

    def midnight
        Chronic.parse("midnight")
    end

这适用于比较

答案 1 :(得分:0)

对于像我这样不喜欢在gemfile中为小东西添加额外宝石的人,请选择:

def morning
    DateTime.now.beginning_of_day + (6.5).hours
end

def midnight
   DateTime.now.end_of_day
   # Or DateTime.now.at_midnight + 1 
end

还有更多选项DateTime给我们提供了以下内容:  :at_beginning_of_day,:at_beginning_of_month,:at_beginning_of_quarter,:at_beginning_of_week,:at_beginning_of_year,:at_end_of_month,:at_end_of_quarter,:at_end_of_week,:at_end_of_year,:at_midnight,:awesome_inspect,:awesome_print,:beginning_of_day,:beginning_of_month,:beginning_of_quarter,:beginning_of_week,:beginning_of_year ,:星期五,星期日?,星期一?,星期二?,星期三?,星期四?,星期五?,星期六?

做到(相信我,你不会后悔): DateTime.now.methods.sort

相关问题