use*_*543 28 ruby ruby-on-rails
我需要编写一种方法来检查是否Time.now在商店的营业时间和营业时间之间.
打开和关闭时间保存为时间对象,但我无法比较核心,因为商店节省了时间,2012/2/2所以开放时间将是这样的:
2012-02-02 02:30:00 UTC
Run Code Online (Sandbox Code Playgroud)
并且Time.now将是:
07:23 +0200
Run Code Online (Sandbox Code Playgroud)
如何比较没有日期部分的时间部分?
Мал*_*евъ 36
Time例如,您可以比较没有日期部分,如下所示:
time1.utc.strftime( "%H%M%S%N" ) <= time2.utc.strftime( "%H%M%S%N" )
Run Code Online (Sandbox Code Playgroud)
有一个很好的库https://github.com/bokmann/business_time可以为您完成此操作以及更多操作。
BusinessTime::Config.with(beginning_of_workday: "8:30 am", end_of_workday: "5:30 pm") do
Time.now.during_business_hours?
end
Run Code Online (Sandbox Code Playgroud)
它将为您做更多的事情,例如将时间滚动到下一个或上一个开放时间,计算两个时间戳之间的营业时间等。
您可以将时间分解为小时、分钟和秒。
如时间类中所述:
t = Time.now
hour = t.hour
minute = t.min
seconds = t.sec
Run Code Online (Sandbox Code Playgroud)
由于您只需比较是否在 2 小时内,因此您可以按如下方式检查。
if hour > openingHour and hour < closingHour
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16412 次 |
| 最近记录: |