如何使用PHP检查当前时间是否属于特定的时间表(如果下次不计算)?

时间:2016-08-17 23:12:35

标签: php date datetime time php-carbon

我正在尝试编写一个任务调度程序类型的程序(或多或少类比),如果当前时间在特定的时间表内,则需要打印。如果没有,那么它需要找到下次运行时间(即将来最接近时间表的时间)并打印出来。

计划格式是JSON,看起来像这样:

[
 {"days": ["Mon","Tue","Wed","Thu","Fri"], "start_time":"09:00", "end_time":"18:00"},
 {"days": ["Sat"],"start_time":"06:00","end_time":"12:00"}
]

上述意思是允许的时间表是工作日上午9点到下午6点,周六早上6点到中午12点,周日没有任何事情发生(这只是一个例子,也可能有很多项目和可能的重叠)

所以,我们今天说的是Thu 19:00,然后它会打印“否”,然后是Fri 09:00最近的时间。

另一个例子,假设它是Sat 13:00然后它将再次打印“NO”,然后是Mon 09:00,因为星期日不在时间表中。

另一方面,如果现在是Tue 11:00,那么它只会打印“是”(因为它属于上述时间表)。

我试图实现它here并且它有效,但我认为我的实现速度相当慢,因为我每天都会循环检查它何时通过,我确信必须存在很多更快速地直接计算未来时间。

感谢您的帮助!

P.S。时区始终为UTC(如果重要)。我已经安装了Carbon并开放使用任何库,如果这样可以使工作更轻松。

0 个答案:

没有答案