//获得星期时间范围
function get_week($n=0){
$w = date('w',time());
if($w==0)$w=7;
$start = strtotime(date('Y-m-d 00:00:00',(time()-($w-1)*24*3600)));
$end = strtotime(date('Y-m-d 23:59:59',(time()+(7-$w)*24*3600)));
$start = $start + ($n*7*24*60*60);
$end = $end + ($n*7*24*60*60);
return [
'time'=>[$start,$end],
'datetime'=>[date('Y-m-d H:i:s',$start),date('Y-m-d H:i:s',$end)],
'date'=>[date('Y-m-d',$start),date('Y-m-d',$end)]
];
}
//获得3天一个间隔的时间范围
function get_day($n,$start_date,$now,$every_day=3){
$at = strtotime(date('Y-m-d',$now));
$st = strtotime($start_date.' 00:00:00');
$day = ($at - $st)/(24*60*60);//天数差
$yu = Kmod($day,$every_day);
$start = strtotime(date('Y-m-d',$at).' -'.($yu + $every_day*$n*-1).' day');
$end = strtotime(date('Y-m-d',$start).' +'.$every_day.' day') -1;
return [
'time'=>[$start,$end],
'datetime'=>[date('Y-m-d H:i:s',$start),date('Y-m-d H:i:s',$end)],
'date'=>[date('Y-m-d',$start),date('Y-m-d',$end)]
];
}
//浮点数取模
function Kmod($bn, $sn){
//fmod() 函数返回除法的浮点数余数
return intval(fmod(floatval($bn), $sn));
}
$start_date = '2021-01-27';//从这天开始为第一天
$this->Log('everyRedRankLog','[折扣排行奖励]执行本期:',get_day(1,$start_date,time(),3));
$this->Log('everyRedRankLog','[折扣排行奖励]执行本期:',get_day(0,$start_date,time(),3));
$this->Log('everyRedRankLog','[折扣排行奖励]执行上期:',get_day(-1,$start_date,time(),3));
$this->Log('everyRedRankLog','[折扣排行奖励]执行上期:',get_day(-2,$start_date,time(),3));
$n = -1;
$lastweek = get_week($n);
$this->Log('everyRedRankLog','[折扣排行奖励]执行上星期:',$lastweek);