概述
Possible Duplicate:
07000
我想弄清楚如果PHP中的两个时间范围重叠.我最初的尝试一直指的是Determine Whether Two Date Ranges Overlap,然而,它并不匹配所有情况.如果时间范围嵌套在另一个时间范围的开始和结束时间之间,则它不匹配.如果它与班次的开始或结束重叠,或者如果班次完全匹配,则按预期工作.
看看我正在谈论的这张图片:
基本上,我试图隐藏任何橙色移位,如果它们在任何地方重叠任何红移.这是我试图用来实现这一目标的相关代码部分.
if(($red['start'] <= $orange['end']) && ($red['end'] >= $orange['start'])) {
//Conflict handling
}
变量的值是UNIX时间戳.从逻辑上理解数字,我理解为什么上面的陈述失败了.很明显,我可以采用更多逻辑来确定一个班次是否属于另一个班次(这是我可能需要做的事情),但我希望有一个更普遍的问题.
编辑:添加每个块的开始和结束时间的值.我同意我应该做的工作.它不是我的问题所在.我可能忽视了一些愚蠢的事情.
orange-start = 1352899800
orange-end = 1352907000
red-start = 1352923200
red-end = 1352926200
因此我的逻辑会说:
if((1352923200 <= 1352907000) && (1352926200 >= 1352899800))
因此,第一次比较失败.
编辑2:看起来我的逻辑是合理的(我认为是这种情况),我的问题是与UNIX时间戳相关的东西与实际显示的时间不匹配.我感谢那些和我一起工作的人,并帮助我发现这个问题.我希望我能接受安德烈和杰森的答案.
最后
以上就是幸福帽子为你收集整理的php 左右两个点,php – 确定两个时间范围是否在任何点重叠的全部内容,希望文章能够帮你解决php 左右两个点,php – 确定两个时间范围是否在任何点重叠所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复