PHP編程計算兩個時間段是否有交集的實現(xià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
PS:這里再為大家推薦幾款時間及日期相關(guān)工具供大家參考使用:
在線日期/天數(shù)計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線日期計算器/相差天數(shù)計算器:
http://tools.jb51.net/jisuanqi/datecalc
在線日期天數(shù)差計算器:
http://tools.jb51.net/jisuanqi/onlinedatejsq
Unix時間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php日期與時間用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
php下將多個數(shù)組合并成一個數(shù)組的方法與實例代碼
php下將多個數(shù)組合并成一個數(shù)組的方法與實例代碼,需要的朋友可以參考下。2011-02-02PHP實現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實例詳解
這篇文章主要介紹了PHP實現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次),結(jié)合實例形式詳細(xì)分析了php針對二叉樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-04-04Laravel中使用FormRequest進(jìn)行表單驗證方法及問題匯總
Laravel 5.0 帶來了FormRequests, 這是一種特殊的類型, 用于在提交表單時進(jìn)行數(shù)據(jù)的檢查和驗證. 每個FormRequest類至少包含一個rules()方法, 這個方法返回一組驗證規(guī)則. 除此之外還必須包含一個authorize()方法, 該方法返回一個布爾值, 代表是否允許用戶執(zhí)行本次請求.2016-06-06Laravel 5.4重新登錄實現(xiàn)跳轉(zhuǎn)到登錄前頁面的原理和方法
在日常開發(fā)中,我們經(jīng)常遇到一個需求,就是用戶登陸后存在過期時間,超時用戶需重新登錄,下面這篇文章主要給大家介紹了關(guān)于Laravel 5.4重新登錄實現(xiàn)跳轉(zhuǎn)到登錄前頁面的原理和方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07