明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

解析PHP編程計算2個時間段是否有交集的完成方法

[摘要]這篇文章主要介紹了PHP編程計算兩個時間段是否有交集的實現(xiàn)方法,結(jié)合具體實例形式對比分析了php時間段的轉(zhuǎn)換、比較等相關(guān)操作技巧,需要的朋友可以參考下本文實例講述了PHP編程計算兩個時間段是否有交集的實現(xiàn)方法。分享給大家供大家參考,具體如下:優(yōu)化前的版本:/*** PHP計算兩個時間段是否有交集(...
這篇文章主要介紹了PHP編程計算兩個時間段是否有交集的實現(xiàn)方法,結(jié)合具體實例形式對比分析了php時間段的轉(zhuǎn)換、比較等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了PHP編程計算兩個時間段是否有交集的實現(xiàn)方法。分享給大家供大家參考,具體如下:

優(yōu)化前的版本:

/**
 * PHP計算兩個時間段是否有交集(邊界重疊不算)
 *
 * @param string $beginTime1 開始時間1
 * @param string $endTime1 結(jié)束時間1
 * @param string $beginTime2 開始時間2
 * @param string $endTime2 結(jié)束時間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;
    }
  }
}

優(yōu)化后的版本(條件合并):

/**
 * PHP計算兩個時間段是否有交集(邊界重疊不算)
 *
 * @param string $beginTime1 開始時間1
 * @param string $endTime1 結(jié)束時間1
 * @param string $beginTime2 開始時間2
 * @param string $endTime2 結(jié)束時間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編程計算兩個時間段是否有交集的實現(xiàn)方法的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。