您好,欢迎访问一九零五行业门户网

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

这篇文章主要介绍了php编程计算两个时间段是否有交集的实现方法,结合具体实例形式对比分析了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编程计算两个时间段是否有交集的实现方法的详细内容。
其它类似信息

推荐信息