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; } } }
測試:
$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í)現(xiàn)無限級(jí)分類(不使用遞歸)
這篇文章主要介紹了在不使用遞歸的情況下PHP實(shí)現(xiàn)無限級(jí)分類,感興趣的小伙伴們可以參考一下2015-10-10php下將多個(gè)數(shù)組合并成一個(gè)數(shù)組的方法與實(shí)例代碼
php下將多個(gè)數(shù)組合并成一個(gè)數(shù)組的方法與實(shí)例代碼,需要的朋友可以參考下。2011-02-02php flush無效,IIS7下php實(shí)時(shí)輸出的方法
這篇文章主要介紹了php flush無效,IIS7下php實(shí)時(shí)輸出的方法,需要的朋友可以參考下2016-08-08PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實(shí)例詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次),結(jié)合實(shí)例形式詳細(xì)分析了php針對(duì)二叉樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-04-04Laravel中使用FormRequest進(jìn)行表單驗(yàn)證方法及問題匯總
Laravel 5.0 帶來了FormRequests, 這是一種特殊的類型, 用于在提交表單時(shí)進(jìn)行數(shù)據(jù)的檢查和驗(yàn)證. 每個(gè)FormRequest類至少包含一個(gè)rules()方法, 這個(gè)方法返回一組驗(yàn)證規(guī)則. 除此之外還必須包含一個(gè)authorize()方法, 該方法返回一個(gè)布爾值, 代表是否允許用戶執(zhí)行本次請(qǐng)求.2016-06-06Laravel 5.4重新登錄實(shí)現(xiàn)跳轉(zhuǎn)到登錄前頁面的原理和方法
在日常開發(fā)中,我們經(jīng)常遇到一個(gè)需求,就是用戶登陸后存在過期時(shí)間,超時(shí)用戶需重新登錄,下面這篇文章主要給大家介紹了關(guān)于Laravel 5.4重新登錄實(shí)現(xiàn)跳轉(zhuǎn)到登錄前頁面的原理和方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07