\n"; //0-5公里,每公里+1元,5-100公里,6元起,每公里+2元 $formatDistance = ceil($distance / 1000); $startKiloFee = 6; if ($formatDistance < 5) { $addDistanceFee = bcmul($formatDistance, 1); } elseif ($formatDistance == 5) { $addDistanceFee = $startKiloFee; } else { $overKilo = bcsub($formatDistance, 5); $overFee = bcmul($overKilo, 2); $addDistanceFee = bcadd($startKiloFee, $overFee); } //5-10公斤,2元起,每公斤+2元,10-15公斤,+12元,超过15公斤,+20元 $formatWeight = ceil($weight); if ($formatWeight > 15) { $addWeightFee = 20; } elseif ($formatWeight >= 10 && $formatWeight <= 15) { $addWeightFee = 12; } elseif ($formatWeight >= 5 && $formatWeight < 10) { $overWeight = bcsub($formatWeight, 4); $addWeightFee = bcmul($overWeight, 2); } else { $addWeightFee = 0; } $addFee = bcadd($addDistanceFee, $addWeightFee, 2); $totalFee = bcadd($baseFee, $addFee, 2); //特殊时段费 $timeFee = 0; $hour = date("G"); //22:00 - 24:00 +4元 if (in_array($hour, [22, 23])) { $timeFee = 4; } //00:00 - 06:00 +6元 if (in_array($hour, [0, 1, 2, 3, 4, 5])) { $timeFee = 6; } $totalFee = bcadd($totalFee, $timeFee, 2); //恶劣天气和下单高峰费用 $weatherFee = 0; $totalFee = bcadd($totalFee, $weatherFee, 2); $showDistance = sprintf("%.1f", ($distance / 1000)); echo "
";
        print_r(['distance' => $distance, 'showDistance' => $showDistance, 'fee' => $totalFee]);
    }

}