我正在尝试编写一个任务调度程序类型的程序(或多或少类比),如果当前时间在特定的时间表内,则需要打印。如果没有,那么它需要找到下次运行时间(即将来最接近时间表的时间)并打印出来。
计划格式是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
并开放使用任何库,如果这样可以使工作更轻松。