PHP編程計(jì)算兩個(gè)時(shí)間段是否有交集的實(shí)現(xiàn)方法(不算邊界重疊)
本文實(shí)例講述了PHP編程計(jì)算兩個(gè)時(shí)間段是否有交集的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
優(yōu)化前的版本:
/**
* PHP計(jì)算兩個(gè)時(shí)間段是否有交集(邊界重疊不算)
*
* @param string $beginTime1 開始時(shí)間1
* @param string $endTime1 結(jié)束時(shí)間1
* @param string $beginTime2 開始時(shí)間2
* @param string $endTime2 結(jié)束時(shí)間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計(jì)算兩個(gè)時(shí)間段是否有交集(邊界重疊不算)
*
* @param string $beginTime1 開始時(shí)間1
* @param string $endTime1 結(jié)束時(shí)間1
* @param string $beginTime2 開始時(shí)間2
* @param string $endTime2 結(jié)束時(shí)間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;
}
}
}
測(cè)試:
$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
PS:這里再為大家推薦幾款時(shí)間及日期相關(guān)工具供大家參考使用:
在線日期/天數(shù)計(jì)算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線日期計(jì)算器/相差天數(shù)計(jì)算器:
http://tools.jb51.net/jisuanqi/datecalc
在線日期天數(shù)差計(jì)算器:
http://tools.jb51.net/jisuanqi/onlinedatejsq
Unix時(shí)間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php日期與時(shí)間用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP編程獲取各個(gè)時(shí)間段具體時(shí)間的方法
- PHP獲取指定時(shí)間段之間的 年,月,天,時(shí),分,秒
- PHP判斷指定時(shí)間段的2個(gè)方法
- 比較時(shí)間段一與時(shí)間段二是否有交集的php函數(shù)
- php 計(jì)算兩個(gè)時(shí)間戳相隔的時(shí)間的函數(shù)(小時(shí))
- PHP中UNIX時(shí)間戳和日期間的轉(zhuǎn)換與計(jì)算實(shí)例
- php計(jì)算兩個(gè)日期時(shí)間差(返回年、月、日)
- php中計(jì)算時(shí)間差的幾種方法
- php 計(jì)算兩個(gè)時(shí)間相差的天數(shù)、小時(shí)數(shù)、分鐘數(shù)、秒數(shù)詳解及實(shí)例代碼
- php計(jì)算函數(shù)執(zhí)行時(shí)間的方法
- php實(shí)現(xiàn)用于計(jì)算執(zhí)行時(shí)間的類實(shí)例
相關(guān)文章
php中將數(shù)組存到文件里的實(shí)現(xiàn)代碼
php的數(shù)組十分強(qiáng)大,有些數(shù)據(jù)不存入數(shù)據(jù)庫直接寫到文件上,用的時(shí)候直接require2012-01-01
php中定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)原理
php中定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)原理,需要的朋友可以參考下2013-01-01
php實(shí)現(xiàn)求相對(duì)時(shí)間函數(shù)
這篇文章主要介紹了php實(shí)現(xiàn)求相對(duì)時(shí)間函數(shù),可實(shí)現(xiàn)簡(jiǎn)單求相對(duì)時(shí)間為幾分鐘前或幾小時(shí)前的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-06-06
php無限分類使用concat如何實(shí)現(xiàn)
這篇文章主要介紹了php無限分類使用concat是如何實(shí)現(xiàn)的,需要的朋友可以參考下2015-11-11
php在服務(wù)器執(zhí)行exec命令失敗的解決方法
出于安全的原因,服務(wù)器是不允許php或者其他語言執(zhí)行exec命令的,當(dāng)你有特殊需要php在服務(wù)器執(zhí)行exec命令時(shí),你需要設(shè)置兩個(gè)地方,不然就無法執(zhí)行成功2012-03-03
微信公眾平臺(tái)消息接口校驗(yàn)與消息接口響應(yīng)實(shí)例
這篇文章主要介紹了微信公眾平臺(tái)消息接口校驗(yàn)與消息接口響應(yīng)的方法,實(shí)例分析了微信公眾平臺(tái)開發(fā)的具體步驟及wechatCallbackapiTest等類的用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
仿AS3實(shí)現(xiàn)PHP 事件機(jī)制實(shí)現(xiàn)代碼
仿AS3實(shí)現(xiàn)PHP 事件機(jī)制實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-01-01
php中substr()函數(shù)參數(shù)說明及用法實(shí)例
這篇文章主要介紹了php中substr()函數(shù)參數(shù)說明及用法,以實(shí)例形式深入分析了substr()函數(shù)中的各個(gè)參數(shù)的含義,并舉例說明了其對(duì)應(yīng)的用法,需要的朋友可以參考下2014-11-11

