我需要使用morning
和midnight
等简单方法存储和检索餐厅时间。我现在在做的是:
def morning
Time.new("6:30 am")
end
def midnight
Time.new("12:00 am")
end
我现在可以比较时间,但这似乎是错误的方法,然后我不知道如何读取这些时间值的方法,如:
def open?(time)
time >= morning && time <= midnight
end
这样做的正确方法是什么?
答案 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