优化前的版本:

/**
* PHP计算两个时间段是否有交集(边界重叠不算)
*
* @param string $beginTime1 开始时间1
* @param string $endTime1 结束时间1
* @param string $beginTime2 开始时间2
* @param string $endTime2 结束时间2
* @return bool
* @author 52php.cnblogs.com
*/
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;
}
}
}

优化后的版本(条件合并):

/**
* PHP计算两个时间段是否有交集(边界重叠不算)
*
* @param string $beginTime1 开始时间1
* @param string $endTime1 结束时间1
* @param string $beginTime2 开始时间2
* @param string $endTime2 结束时间2
* @return bool
* @author blog.snsgou.com
*/
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);

PHP计算两个时间段是否有交集(边界重叠不算)的更多相关文章

  1. Android 比较两个时间段是否有交集或重复

    先看一个例图: 在金山<电池管家>应用中就有一个类似上图这样的功能—— 开启多个定时任务. 当开启另一个定时任务的时候,如果即将开启的这个定时任务的时间段与已经开启了的定时任务的时间段有交 ...

  2. mysql判断两个时间段是否有交集

    //判断两个时间段是否有交集 private function checkTimeCross($start_time,$end_time){ $sql ) AND ((start_time > ...

  3. C 语言实例 - 计算两个时间段的差值

    C 语言实例 - 计算两个时间段的差值 C 语言实例 C 语言实例 计算两个时间段的差值. 实例 #include <stdio.h> struct TIME { int seconds; ...

  4. sql语句判断两个时间段是否有交集

    场景:  数据库有有两个字段.开始时间<startTime>,和结束时间<endTime>,指定一个时间段(a,b),a表示开始时间,b表示结束时间.看数据库中有没有与(a,b ...

  5. java 判断两个时间段是否有交集

    /* 开始时间 */ Date leftStartDate = feesPreferential.getPreferentialStartTime(); /* 结束时间 */ Date leftEnd ...

  6. js判断两个时间段是否有交集

    //判断两个时间是否有交集 function isDateIntersection(start1, end1, start2, end2) { var startdate1 = new Date(st ...

  7. java 判断两个时间段是不是有交集

    如上图:X Y  Z  分别为传来的开始时间可能位于数据库中时间段的位置. X有三种可能 即传来的开始时间为与数据可中某条数据的开始位置!      这样他的结束时间就有三种可能       1.位于 ...

  8. sql 判断两个时间段是否有交集

    本文转自CSDN 链接地址:http://blog.csdn.net/dasihg/article/details/8450195 时间段:starttime_1到endtime_1,starttim ...

  9. php计算两个时间段内的 工作日 工作小时

    <?php class WorkTime { // 定义工作日 [1, 2, 3, 4, 5, 6, 0] public $week_workingday = [1, 2, 3, 4, 5]; ...

随机推荐

  1. 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势

    A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...

  2. Apache、nginx配置的网站127.0.0.1可以正常访问,内外网的ip地址无法访问,谁的锅?

    最近做开发,发现一个比较尴尬的问题.因为我是一个web开发者,经常要用到Apache或者nginx等服务器软件,经过我测试发现,只要我打开了adsafe,我便不能通过ip地址访问我本地的网站了,比如我 ...

  3. 【第一篇献给markdown】markdown入门

    Markdown 是一种轻量级的「标记语言」,语法十分简单,常用的标记符号也不超过十个.虽然功能很强大,但是上手估计不用十分钟. 一些认识 Markdown 官方文档 这里可以看到官方的 Markdo ...

  4. Flooded!

    Flooded! Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5955   Accepted: 1800   Specia ...

  5. 转: 在 Vim 中优雅地查找和替换 (写的很好,排版也是相当的赞)

    http://harttle.com/2016/08/08/vim-search-in-file.html

  6. img图片自适应div盒子,前提是不要把盒子的高给写死了,就是不要写高,如下

    div{width:100%;}//写高就自适应盒子不起来了 img{width: 100%; height: 100%;}

  7. 深入理解JVM内幕(转)

    转自:http://blog.csdn.net/zhoudaxia/article/details/26454421/ 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime ...

  8. Vue系列:在vux的popup组件中使用百度地图遇到显示不全的问题

    问题描述: 将百度地图封装成一个独立的组件BMapComponent,具体见 Vue系列:如何将百度地图包装成Vue的组件(http://www.cnblogs.com/strinkbug/p/576 ...

  9. JS组件系列——Bootstrap Select2组件使用小结

    前言:在介绍select组件的时候,博主之前分享过一篇JS组件系列——两种bootstrap multiselect组件大比拼,这两个组件的功能确实很强大,只可惜没有图文结合的效果(也就是将图片放入到 ...

  10. 云计算之路-阿里云上:13:43-13:44之间RDS故障影响了全站的正常访问

    抱歉!13:43-13:44之间,由于阿里云RDS(云数据库)出现2分钟突发故障,影响了全站的正常访问,给大家带来了麻烦,望大家谅解! 故障期间,应用程序日志中记录的错误信息如下: System.Da ...