解析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?&gt;?0)?{  ????$status2?=?$beginTime2?-?$endTime1;  ????if?($status2?&gt;?0)?{  ??????return?false;  ????}?elseif?($status2??0)?{  ??????return?true;  ????}?else?if?($status2?<p></p><p>優化后的版本(條件合并):</p><p><span>立即學習</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !!important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免費學習筆記(深入)</a>”;</p><p class="jb51code"></p><pre class="brush:php;toolbar:false">/**  ?*?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?&gt;?0)?{  ????$status2?=?$beginTime2?-?$endTime1;  ????if?($status2?&gt;=?0)?{  ??????return?false;  ????}?else?{  ??????return?true;  ????}  ??}?else?{  ????$status2?=?$endTime2?-?$beginTime1;  ????if?($status2?&gt;?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

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享