我目前正在为我的客户开发一个事件管理系统,但我被困在一个地方。PHP - 检查事件是否与另一个事件重叠
对于每个事件,我们需要指定事件发生的地方。这也应该被验证。
我需要能够添加一个事件,并在保存之前检查,如果事件不与数据库中的另一个重叠。例如,我在我的DB的事件:
+------------+------------+------------+----------+----------+
| EVENT NAME | DATE | BEGIN_TIME | END_TIME | LOCAL_ID |
+------------+------------+------------+----------+----------+
| Test 1 | 12/11/2013 | 11:00:00 | 12:00:00 | 250 |
| Test 2 | 12/11/2013 | 10:30:00 | 11:30:00 | 150 |
+------------+------------+------------+----------+----------+
现在,如果我想从11:00:00
事件在当地150
添加到12:00:00
,应该是因为已经有一个从10:30
到11:30
事件给我一个错误这与其他事件同时发生。但是,如果我添加相同的事件,但本地200(例如),它应该工作,因为在本地没有其他事件在同一时间...
我试图计算使用PHP的时间和日期range()
并使用数组方法,但它不起作用。我不知道如何检查。
注意:我使用的是Joomla! 3.1,如果需要,我可以编写自己的插件。
我认为你的问题可能有点过于宽泛。你必须对你想要测试的内容做更具体的描述。你想用什么精确的规则来选择你的数据。如果在这个时间段内已经有事件发生,但您尚未提供任何您已尝试过的代码,那么您希望它会给您一个错误。也许代码片段可能会让它更清晰一些。 – Luke
将日期和时间转换为时间戳,然后使用[确定是否两个日期范围重叠](http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap)中概述的方法。 – user555
你可以编写自定义SQL查询吗?如果是这样,考虑查看BETWEEN条件。 – isick