PHP将单个DateTime拆分为多个

PHP将单个DateTime拆分为多个,php,mysql,datetime,date-arithmetic,Php,Mysql,Datetime,Date Arithmetic,假设我有一个活动,从2014-05-20 09:00开始,到2014-05-20 17:00结束!我想要的是能够将此事件一分为二,假设休息时间为11:00-12:00(实际上存储为datetimes),它将导致4个datetimes: 2014-05-20 09:00 – 2014-05-20 11:00 2014-05-20 12:00 – 2014-05-20 17:00 我可以有几个休息时间,将活动分成许多子活动 我的想法是对休息时间datetimes进行排序,并使用第一个休息时间结束时

假设我有一个活动,从2014-05-20 09:00开始,到2014-05-20 17:00结束!我想要的是能够将此事件一分为二,假设休息时间为11:00-12:00(实际上存储为datetimes),它将导致4个datetimes:

2014-05-20 09:00 – 2014-05-20 11:00
2014-05-20 12:00 – 2014-05-20 17:00
我可以有几个休息时间,将活动分成许多子活动


我的想法是对休息时间datetimes进行排序,并使用第一个休息时间结束时间作为第一个子事件的结束开始时间,反之亦然,这取决于休息时间是什么时候。但是这里有很多计算需要这样做,难道没有更简单的方法吗?

更简单,如中所示,结果将自行计算?我希望不是因为我喜欢被支付。至少,编辑你的问题以显示样本数据。欢迎您提出任何疑问。活动的日期是否始终相同?或者他们能过渡到第二天吗?休息时间总是一样的吗?这实际上比你可能意识到的要复杂得多。例如,如果事件A从8:00开始到13:00结束,而事件B从11:00开始到14:00结束,该怎么办?当您试图通过屏蔽事件B来分割事件A时,您最终会丢失最初的结束时间。因此,您的系统已经需要一些强制规则的方法,在派生子事件之前,可以将相关事件应用于目标事件。