首页 / PHP / 详解php检查是否匹配指定时间段的方法
详解php检查是否匹配指定时间段的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了详解php检查是否匹配指定时间段的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2684字,纯文字阅读大概需要4分钟。
内容图文
![详解php检查是否匹配指定时间段的方法](/upload/InfoBanner/zyjiaocheng/135/99a35361045e47dbb21b8db9cc9184ee.jpg)
因工作开发需要,需要判断一个时间是否在指定的时间段内,且需要支持判断周几及跨天的情况,因此写了以下这个方法,分享给大家学习使用。
代码如下:
<?php/** * 判断时间是否匹配指定时间段 * * Date: 2017-10-29 * Author: fdipzone * Version: 1.0 * * @param Array $config 指定日期时段设定 * @param Int $time 判断的日期时间,默认为当前日期时间 * @return Boolean */function check_time_match($config, $time=null){ $curtime = isset($time)? $time : time(); // 当前周几 $curw = date('w', $curtime); // 上一天周几 $prew = date('w', $curtime-86400); // 当前时分 $curhm = date('H:i', $curtime); // 循环指定日期时段,检查是否匹配 foreach($config as $k=>$v){ // 循环时段 foreach($v['range'] as $t){ list($range, $next_day) = explode(',', $t); // 获取时段的开始结束时间 list($starttime, $endtime) = explode('-', $range); // 当天 if($next_day==0){ // 检查周几是否匹配 if(in_array($curw, $v['week'])){ // 检查时间是否匹配 if($curhm>=$starttime && $curhm<=$endtime){ return true; } } // 跨天 }else{ // 检查当天周几是否匹配 if(in_array($curw, $v['week'])){ // 检查当天时间是否匹配,开始时间-当天零点 if($curhm>=$starttime){ return true; } } // 检查上一天周几是否匹配 if(in_array($prew, $v['week'])){ // 检查上一天时间是否匹配,当天零点-结束时间 if($curhm<=$endtime){ return true; } } } } } return false; }?>
demo:
<?php// 指定日期时段设定$config = array( array( 'week' => array(1,2,3,4,5), // 周一至周五 'range' => array('08:00-12:00,0', '14:00-18:00,0', '20:00-22:00,0') ), array( 'week' => array(0,6), // 周六周日 'range' => array('08:00-18:00,0', '20:00-02:00,1'), // 0:不跨天,1:跨天 ) );// 检查时间是否匹配$check_time = array( null, // 当前日期时间,2017-10-29 11:40 周日 '2017-10-23 11:00', // 周一 '2017-10-24 12:01', // 周二 '2017-10-25 19:59', // 周三 '2017-10-26 21:59', // 周四 '2017-10-27 22:00', // 周五 '2017-10-28 12:01', // 周六 '2017-10-28 18:01', // 周六 '2017-10-29 01:59', // 周日 '2017-10-30 01:59', // 周一 '2017-10-30 02:01', // 周一 '2017-10-31 01:59', // 周二);foreach($check_time as $time){ var_dump(check_time_match($config, strtotime($time))); }?>
输出:
boolean trueboolean trueboolean falseboolean falseboolean trueboolean trueboolean trueboolean falseboolean trueboolean trueboolean falseboolean false
本篇文章讲解了php 检查是否匹配指定时间段的方法,更多相关内容请关注Gxl网。
相关推荐:
如何JS获取访问设备信息的方法
mysql5.7导出数据提示--secure-file-priv选项问题的解决方法
如何通过php 实现debug_backtrace方法跟踪代码调用
以上就是详解php 检查是否匹配指定时间段的方法的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的详解php检查是否匹配指定时间段的方法全部内容,希望文章能够帮你解决详解php检查是否匹配指定时间段的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。