PHP正在计算下一个事件日期


PHP Calculating next event date

我有一个数据库,它保存以下格式的事件:

时间表

id  
show_id
starttime - datetime
endtime - datetime
repeatuntil - datetime
repeat - int
nthdayofmonth - int
repeatmultiple - int

show_id保存所存储的节目的id号。

节目可以针对不同的周期性或不同的日期/时间变化存储多次。

开始时间、结束时间和重复时间对于它们的作用有点明显

repeat是重复的类型:

1 - hourly
2 - daily
3 - weekly
4 - monthly
5 - yearly

无论是否需要或将要使用,我都不是100%repeatmultiple是当事件需要每隔一周或每隔一个月重复时使用的,依此类推…


我一直在努力的是计算下一个事件何时发生的代码,我尝试了互联网和stackoverflow的各种解决方案,但仍在努力。大多数时候,我的代码都会陷入无限循环,无法计算出下一个事件的正确日期。

如果有人能够帮助编写一个函数,该函数可以循环找到下一次事件发生的时间,我将非常感谢这些帮助,因为我感到非常沮丧,而且离我开始的时候不远了。

我认为您可以通过描述这里真正需要的两个功能来实现这一点。

首先,您需要一种计算给定Show将执行的下一个DateTime的方法。这与任何其他Show无关,与先出现的内容无关。您需要一个方法,在给定starttime, endtime, etc条件的情况下,该方法将计算此Show下次执行的时间。

一旦您能够确定任何给定的Show将在何时执行,您就可以继续确定哪个Show将在下一步执行。你可以在数据库中循环,计算下一次并存储最快的。。。或者甚至串行化每个Show的Next DateTime并查询数据库中最小的。