智慧停车。 收费标准,
8:00 - 20:00 每小时收费2
20:00-8:00 每小时收费2,封顶5元
/**
* 计算订单价格
* freeduration 免费分钟
* hourlycharge 每小时收费(元)
* start_time 开始时间
* end_time 免费时间
* @return mixed
*/
public function calculation($freeduration,$hourlycharge,$start_time)
{
header("Content-type:text/html;charset=utf-8");
ini_set('date.timezone', 'Asia/Shanghai');
$end_time = time();
$minute_total = floor(($end_time-$start_time)%86400/60);
$price = 0;
if($minute_total < intval($freeduration)){
// 没有超过免费分钟数量 免费
$price = 0;
}else{
//订单开始时间
$startTime = date('Y-m-d',$start_time);
//订单结束时间
$endTime = date('Y-m-d',$end_time);
//订单开始时间早上8点
$eightEvening1 = $startTime."08:00";
//订单开始时间晚上8点
$eightEvening = $startTime."20:00";
//订单结束时间早上八点
$eightDay = $endTime."08:00";
//订单结束时间晚上八点
$eightDay1 = $endTime."20:00";
//判断是不是大于24小时
$hour_total = floor(($end_time-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
// if(date('H',$start_time) <= 8 && date('H',$end_time) <= 8){
// // 判断开始时间是否在早上八点之前 和 结束时间早上八点之前
// }else if(date('H',$start_time) <= 8 && date('H',$end_time) >= 8 && date('H',$end_time) <= 20){
// // 判断开始时间是否在早上8点之前 并且 结束时间在早上八点之后和晚上八点之前
// }else if(date('H',$start_time) <= 8 && date('H',$end_time) >= 20){
// // 判断开始时间是否在早上8点之前 并且 结束时间是在晚上八点之后
// }
if(date('H',$start_time) <= 8 ){
// 判断开始时间是否在早上八点之前
if(date('H',$end_time) <= 8 ){
// 判断结束时间是否在早上八点之前
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
// 算钱
$hour_total = floor(($end_time-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price = $hour_total * $hourlycharge;
if($price > 5){
$price = 5;
}
}elseif($day_tian == 1){
$price1 = '';
// 算钱
$hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$price2 = 12 * $hourlycharge;
$price3 = 5;
$price = $price1 + $price2 + $price3;
}else{
$price1 = '';
// 订单开始时间的早上八点 减 订单开始时间的几个小时
// 算钱
$hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$price2 = '';
// 白天早上八点到晚上8点的算钱
$day_tian = $day_tian - 1;
$price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
$price3 = '';
// 晚上的24之后 到第二天早上的八点之前
$price3 = 12 * $hourlycharge;
$price4 = 5;
$price = $price1 + $price2 + $price3 + $price4;
}
}else if(date('H',$end_time) > 8 && date('H',$end_time) <= 20 ){
// 判断结束时间是否早上八点之后和晚上八点之间
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
// 算钱
$hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price2 = $hour_total * $hourlycharge;
$price = $price1 + $price2;
}else{
$price1 = '';
// 订单开始时间的早上八点 减 订单开始时间的几个小时
// 算钱
$hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$price2 = '';
// 白天早上八点到晚上8点的算钱
$price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
$price3 = '';
// 晚上的24之后 到第二天早上的八点之前
$hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price3 = $hour_total * $hourlycharge;
$price = $price1 + $price2 + $price3;
}
}else if(date('H',$end_time) > 20 ){
// 判断结束时间是否在晚上八点之后
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
// 算钱
$hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$price2 = 12 * $hourlycharge;
$hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price3 = $hour_total * $hourlycharge;
if($price3 > 5){
$price3 = 5;
}
$price = $price1 + $price2 + $price3;
}else{
$price1 = '';
// 订单开始时间的早上八点 减 订单开始时间的几个小时
// 算钱
$hour_total = floor((strtotime($eightEvening1)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$price2 = '';
// 白天早上八点到晚上8点的算钱
$price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
$price3 = 12 * $hourlycharge;
$price4 = '';
// 订单结束时间 减去 订单时间的晚上八点
$hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price4 = $hour_total * $hourlycharge;
if($price4 > 5){
$price4 = 5;
}
$price = $price1 + $price2 + $price3 + $price4;
}
}
}else if(date('H',$start_time) > 8 && date('H',$start_time) <= 20 ){
// 判断开始时间是否早上八点之后和晚上八点之间
if(date('H',$end_time) <= 8 ){
// 判断结束时间是否在早上八点之前
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
// 算钱
$hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
$price2 = 5;
$price = $price1 + $price2;
}else{
$price1 = '';
// 订单开始时间的早上八点 减 订单开始时间的几个小时
// 算钱
$hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
$price2 = '';
// 白天早上八点到晚上8点的算钱
// $day_tian = $day_tian - 1;
$price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
$price3 = 5;
$price = $price1 + $price2 + $price3;
}
}else if(date('H',$end_time) > 8 && date('H',$end_time) <= 20 ){
// 判断结束时间是否早上八点之后和晚上八点之间
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
// 算钱
$hour_total = floor(($end_time-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
$price = $price1;
}else if($day_tian == 1){
$price1 = '';
// 订单开始时间的早上八点 减 订单开始时间的几个小时
// 算钱
$hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
$price2 = 5;
$price3 = '';
// 算钱
$hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price3 = $hour_total * $hourlycharge;
$price = $price1 + $price2 + $price3;
}else{
$price1 = '';
// 订单开始时间的早上八点 减 订单开始时间的几个小时
// 算钱
$hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
$day_tian = $day_tian - 1;
$price2 = 12 * $day_tian * $hourlycharge + 5 * $day_tian;
$price3 = 5;
$price4 = '';
// 算钱
$hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price4 = $hour_total * $hourlycharge;
$price = $price1 + $price2 + $price3 + $price4;
}
}else if(date('H',$end_time) > 20 ){
// 判断结束时间是否在晚上八点之后
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
$price1 = '';
// 算钱
$hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
$price2 = '';
// 算钱
$hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price2 = $hour_total * $hourlycharge;
if($price2 > 5){
$price2 = 5;
}
$price = $price1 + $price2;
}else{
$price1 = '';
// 算钱
$hour_total = floor((strtotime($eightEvening)-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
$price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;
$price3 = '';
// 算钱
$hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price3 = $hour_total * $hourlycharge;
if($price3 > 5){
$price3 = 5;
}
$price = $price1 + $price2 + $price3;
}
}
}else if(date('H',$start_time) > 20 ){
// 判断开始时间是否在晚上八点之后
if(date('H',$end_time) <= 8 ){
// 判断结束时间是否在早上八点之前
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
$hour_total = floor(($end_time-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$price = $price1;
}elseif($day_tian == 1){
$price1 = 5;
$price2 = 12 * $hourlycharge;
$price3 = 5;
$price = $price1 + $price2 + $price3;
}else{
$price1 = 5;
$day_tian = $day_tian - 1;
$price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;
$price3 = 12 * $hourlycharge;
$price4 = 5;
// 算钱
$price = $price1 + $price2 + $price3 + $price4;
}
}else if(date('H',$end_time) > 8 && date('H',$end_time) <= 20 ){
// 判断结束时间是否早上八点之后和晚上八点之间
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
$price1 = 5;
$price2 = '';
// 算钱
$hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price2 = $hour_total * $hourlycharge;
$price = $price1 + $price2;
}else{
$price1 = 5;
// $day_tian = $day_tian - 1;
$price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;
// 算钱
$hour_total = floor(($end_time-strtotime($eightDay))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price3 = $hour_total * $hourlycharge;
// 算钱
$price = $price1 + $price2 + $price3;
}
}else if(date('H',$end_time) > 20 ){
// 判断结束时间是否在晚上八点之后
//中间间隔天数,开始时间在
$day_tian = floor(($end_time-$start_time)/86400);
if($day_tian == 0){
// 算钱
$hour_total = floor(($end_time-$start_time)%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price1 = $hour_total * $hourlycharge;
if($price1 > 5){
$price1 = 5;
}
$price = $price1;
}else if($day_tian == 1){
$price1 = 5;
$price2 = 12 * $hourlycharge;
$price3 = '';
// 算钱
$hour_total = floor(($end_time-strtotime($eightEvening))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price3 = $hour_total * $hourlycharge;
if($price3 > 5){
$price3 = 5;
}
$price = $price1 + $price2 + $price3;
}else{
$price1 = 5;
$day_tian = $day_tian - 1;
$price2 = 12 * $hourlycharge * $day_tian + 5 * $day_tian;
$price3 = 12 * $hourlycharge;
// 算钱
$hour_total = floor(($end_time-strtotime($eightDay1))%86400/3600);
// 判断如果没有满足一个小时按满足一小时进行计算
$hour_total = $hour_total == 0 ? 1 : $hour_total;
$price4 = $hour_total * $hourlycharge;
if($price4 > 5){
$price4 = 5;
}
// 算钱
$price = $price1 + $price2 + $price3 + $price4;
}
}
}
}
return $price;
}