解析PHP編程計算2個時間段是否有交集的完成方法
發表時間:2023-08-26 來源:明輝站整理相關軟件相關文章人氣:
[摘要]這篇文章主要介紹了PHP編程計算兩個時間段是否有交集的實現方法,結合具體實例形式對比分析了php時間段的轉換、比較等相關操作技巧,需要的朋友可以參考下本文實例講述了PHP編程計算兩個時間段是否有交集的實現方法。分享給大家供大家參考,具體如下:優化前的版本:/*** 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編程計算兩個時間段是否有交集的實現方法的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。