廢話不多說,我就直接上**吧!
/*** 計算兩個時間段之間交集的天數
* @param $startdate1 開始日程式設計客棧期1
* @param $enddate1 結束日期1
* @param $startdate2 開始日期2
* @param $enddate2 結束日期2
*/public function share_date_days($startdate1, $enddate1, $startdate2, $enddate2)
// 如果日期1的開始日期小於日期二的結束日期,則返回0
if($startdate1 > $enddate2)
// 如果日期1的結束日期等於日期2的開始日期,則返回1
if($enddate1 == $startdate2)
// 如果日期1的開始日期等於日期2的結束日期,則返回1
if($startdate2 == $enddate1)
/** ------------ 臨界值換算 ------end------ */
/** ------------ 交集換算 ------start------ */
// 如果開始日期1小於開始日期2,且開始日期2小於結束小於結束日期1
if($startdate1 < $startdate2 && $enddate1 > $startdate2)
// 如果結束日期1大於結束日期2
if($enddate1 > $enddate2)
} // 如果開始日期1大於開始日期2,且開始日期1小於結束日期2
if($startdate1 > $startdate2 && $startdate1 < $enddate2)
// 如果結束日期1大於結束日期2
if($enddate1 > $enddate2)
} // 開始日期1等於開始日期2
if($startdate1 == $startdate2)
// 結束程式設計客棧日期1大於結束日期2
if($enddate1 > $enddate2)
} // 結束日期1等於結束日期2
if($enddate1 == $enddate2)
// 開始日期1大於開始日期2
if($startdate1 > $startdate2)
}// 時間段1在時間段2內
if($startdate1 >= $startdate2 && $enddate1 <= $enddate2)
// 時間段1包含時間段2
if($startdate1 < $startdate2 && $enddate1 > $enddate2)
/** ------------ 交集換算 ------end------ */
return $days;
}/**
* 求兩個日期之間相差的天數
* (針對2023年1月1日之後,求之前可以採用泰勒公式)
* @param string $day1
* @param string $day2
* @return number
*/function diffbetweentwowww.cppcns.comdays($day1, $day2)
return ($day1 - $day2) / 86400;
}本文標題: php 計算兩個時間段之間交集的天數示例
本文位址:
PHP計算兩個時間段是否有交集(邊界重疊不算)
優化前的版本 php計算兩個時間段是否有交集 邊界重疊不算 param string begintime1 開始時間1 param string endtime1 結束時間1 param string begintime2 開始時間2 param string endtime2 結束時間2 retu...
mysql查詢兩個時間段是否有交集
1.需求 查詢兩個時間段是否有交集 2.分析 分為三種情況 入參 查詢開始時間,查詢結束時間 資料庫字段 start date,end date 2.1 查詢開始時間在start date與end date之間,則肯定有交集 2.2 查詢結束時間在start date與end date之間,則肯定有...
判斷兩個時間段範圍是否有交集
專案中經常會遇到判斷兩個時間段範圍是否有交集,所以本文就記錄下當時思考的過程和示例 本文提供兩種思路。1 參考時間段 包含 比較時間段 2 參考時間段 只包含 比較時間段結束時間 3 參考時間段 只包含 比較時間段開始時間 4 比較時間段 包含 參考時間段 根據圖示編寫的 示例 判斷兩個時間範圍是否...