/** * @param $startDateTime 开始时间 * @param $endDateTime 结束时间 * @return array */ private function timeDiff($startDateTime, $endDateTime) { $startDateTime = new \DateTime($startDateTime); $endDateTime = new \DateTime($endDateTime); $interval = $startDateTime->diff($endDateTime); $formatMap = [ 'y' => 'year', 'm' => 'month', 'd' => 'day', 'h' => 'hour', 'i' => 'minute', 's' => 'second', 'days' => 'days', ]; $returnData = []; foreach ($formatMap as $key => $val) { $returnData[$val] = $interval->{$key}; } return $returnData; } // //获取可升级的月数 // $end_date= date("Y-m-d",$current_cdn['endtime']); // $cur_date=date("Y-m-d",time()); // $max_u_ymd= $this->timeDiff( $cur_date,$end_date); // $data['max_u_ymd']=$max_u_ymd; // $max_u_month=intval($max_u_ymd['year']*12)+intval( $max_u_ymd['month']*1)+intval($max_u_ymd['day']?1:0); // if(intval($post['num'])>$max_u_month){ // $data['message']="升级的包时长超出主套餐时长!"; // $data['msg']=array($cur_date,$end_date,$max_u_month); // return json($data); // } // // //获取升级的总数 // $i_num=intval($post['num']) ; // $u_year= intval ($i_num/12);//升级的年数 // $i_num=$i_num- $u_year*12; // $u_season= intval ($i_num/3);//升级的季数 // $i_num=$i_num- $u_season*3; // $u_month= intval ($i_num/1);//升级的月数 // //$data['$current_cdn']=$current_cdn; //计算升级的总费用 $now = date('Y-m-d H:i:s',time()); // //当前时间向后推N个月 的日期 // $expect_end_date=date("Y-m-d H:i:s",strtotime("+".intval($post['num'])."months",strtotime($now))); // $expect_end_date_time=strtotime($expect_end_date); // if($expect_end_date_time>$current_cdn['endtime']){ // //购买的升级包到期时间在主套餐时长外 --购买存在按天计算的 // $p_result=intval($u_year*$package['prices_y'])+intval($u_season*$package['prices_s']); // if($u_month>1){ // //大于1个月 升级X-1个整月+N天 // $p_result+=($u_month-1)*$package['prices_m']; // }else if(1==$u_month){ // if(0==$max_u_ymd['day']){ // $p_result+=1*$package['prices_m']; // } // } // //预期的时间向前推1个月的时间的时间戳 // $expect_e_d_ts=date("Y-m-d H:i:s",strtotime("-1months",$expect_end_date_time)); // $expect_e_d_ts_time=strtotime($expect_e_d_ts); // //最后一个月的天数 // $expect_e_d_days=intval($expect_end_date_time-$expect_e_d_ts_time)/(24*3600); // //$data["test_msg"]=array($expect_end_date_time,$expect_e_d_ts_time,intval($expect_end_date_time-$expect_e_d_ts_time),$expect_e_d_days); // //最后一个月每天的平均的单价- // $last_per_price=intval($package['prices_m'])/$expect_e_d_days; // $p_result+=$max_u_ymd['day']*$last_per_price; // $data["tast"]=array($last_per_price,$max_u_ymd['day']); // $p_result=$p_result; // // }else{ // //购买的升级包在主套餐时长内 直接按套餐计算 // $data['tast']=array("in out"); // $p_result=intval($u_year*$package['prices_y']+$u_season*$package['prices_s']+$u_month*$package['prices_m']); // } $p_result=$p_result/100;