php – 识别日期和时间阵列的冲突

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 识别日期和时间阵列的冲突脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经检查了其他SO问题,但似乎无法找到与此相关的任何内容 – 如果我错过了某些内容,请指出正确的方向.

我目前有以下数组包含日期和时间(请求的会议时间):

Array (
    [0] =>
        day => 'Thursday',start_time => '14:00',end_time => '15:00'
    [1] =>
        day => 'Thursday',start_time => '16:30',end_time => '17:30'
)

用户需要参加这两次.我试图做的是与包含用户当前约会的另一个数组进行比较,并检测是否存在冲突/时间重叠问题

Array (
    [0] =>
        day => 'Monday',start_time => '09:00',end_time => '13:00'
    [1] =>
        day => 'Wednesday',start_time => '10:45',end_time => '11:15'
    [2] =>
        day => 'Thursday',start_time => '16:45',end_time => '17:45'
)

使用上面的例子,我想确定第二个时隙[1] =>存在冲突.与第三个时段冲突的第一个阵列(拟议会议)[2] =>第二个阵列(当前会议)

我见过带有时间戳和完整日期的示例,但不仅仅是天和开始/结束时间.

解决方法

如果它们都在数据库中,则冲突查询可能如下所示:

SELECT `plan`.*
From `plan`
    JOIN `current` ON `plan`.`day`=`current`.`day`
WHERE
    `plan`.`start_time` < `current`.`end_time`
    AND `plan`.`end_time` > `current`.`start_time`

其中current是具有当前计划的表,而计划是具有用户计划的表.我没有测试这个只是因为我没有一个例子,但是这应该返回日期相同且计划时间与当前时间重叠的行.

编辑:如果不需要,你可能还想做像标记当前为暂定的东西.你可以把它放到查询where子句中.

还是>和<意味着开始和结束分钟不包括在内.所以如果一个人在另一个人开始的同时结束,这不会将他们标记为冲突.如果您希望开始/结束分钟包含在内,请将它们更改为> =和< =.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 识别日期和时间阵列的冲突全部内容,希望文章能够帮你解决php – 识别日期和时间阵列的冲突所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。