应用场景:
在做定时任务或者是其他功能需要用到的代码:
/**
* 判断是否到指定日期
* $time_rule 指定时间规则
* $type 0:按天 1:按周 2:按月
*/
function is_time($time_rule='',$type=0) {
$ret = false;
date_default_timezone_set('PRC');//定义时间戳为中国时间
//测试数据
$time_rule['d'] = '01';//指定每月几号 1号
$time_rule['w'] = '1';//指定每周几 周一 注意0是星期日
$time_rule['H'] = '15';//指定小时 15点
$time_rule['i'] = '35';//指定分钟 35分
//匹配该任务的周期
switch ($type){
case '0' ://按天
$H = intval(date("H"));//获得当前小时时间
$I = intval(date("i"));//获得当前分钟时间
if ($I >= intval($time_rule['i']) && $H >= intval($time_rule['H'])) {
//当前时间等于指定时间规则或超过时间规则
$ret = true;
echo '时间到';die;
}
break;
case '1' ://按周
$w = intval(date("w"));//获得当前星期几
$H = intval(date("H"));//获得当前小时时间
$I = intval(date("i"));//获得当前分钟时间
if ($w == intval($time_rule['w']) && $I >= intval($time_rule['i']) && $H >= intval($time_rule['H'])) {
//当前时间等于指定时间规则或超过时间规则
$ret = true;
echo '时间到';die;
}
break;
case '2' ://按月
$d = intval(date("d"));//获得当前几号
$H = intval(date("H"));//获得当前小时时间
$I = intval(date("i"));//获得当前分钟时间
if ($d == intval($time_rule['d']) && $I >= intval($time_rule['i']) && $H >= intval($time_rule['H'])) {
//当前时间等于指定时间规则或超过时间规则
$ret = true;
echo '时间到';die;
}
break;
default: //匹配不到的时候
break;
}
return $ret;
}
小结
认真看完代码中的注释,真的很帮助我们的开发哦.
感谢您的阅读~~