您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP实现编程计算两个时间段是否有交集的方法

2025/5/7 11:23:32发布12次查看
这篇文章主要介绍了php编程计算两个时间段是否有交集的实现方法,结合具体实例形式对比分析了php时间段的转换、比较等相关操作技巧,需要的朋友可以参考下
具体如下:
优化前的版本:
/** * php计算两个时间段是否有交集(边界重叠不算) * * @param string $begintime1 开始时间1 * @param string $endtime1 结束时间1 * @param string $begintime2 开始时间2 * @param string $endtime2 结束时间2 * @return bool */ function is_time_cross($begintime1 = '', $endtime1 = '', $begintime2 = '', $endtime2 = '') { $status = $begintime2 - $begintime1; if ($status > 0) { $status2 = $begintime2 - $endtime1; if ($status2 > 0) { return false; } elseif ($status2 < 0) { return true; } else { return false; } } elseif($status < 0) { $status2 = $endtime2 - $begintime1; if ($status2 > 0) { return true; } else if ($status2 < 0) { return false; } else { return false; } } else { $status2 = $endtime2 - $begintime1; if ($status2 == 0) { return false; } else { return true; } } }
优化后的版本(条件合并):
/** * php计算两个时间段是否有交集(边界重叠不算) * * @param string $begintime1 开始时间1 * @param string $endtime1 结束时间1 * @param string $begintime2 开始时间2 * @param string $endtime2 结束时间2 * @return bool */ function is_time_cross($begintime1 = '', $endtime1 = '', $begintime2 = '', $endtime2 = '') { $status = $begintime2 - $begintime1; if ($status > 0) { $status2 = $begintime2 - $endtime1; if ($status2 >= 0) { return false; } else { return true; } } else { $status2 = $endtime2 - $begintime1; if ($status2 > 0) { return true; } else { return false; } } }
测试:
$begintime1 = strtotime('2015-08-07 06:30'); $endtime1 = strtotime('2015-08-07 08:30'); $begintime2 = strtotime('2015-08-07 05:30'); $endtime2 = strtotime('2015-08-07 06:31'); echo is_time_cross($begintime1, $endtime1, $begintime2, $endtime2);//输出1
相关推荐:
php+mysql对固定时间段内数据统计优化步骤详解
php结合redis来限制用户或者ip某个时间段内访问的次数
php如何实现计算两个时间段是否有交集
以上就是php实现编程计算两个时间段是否有交集的方法的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product