function get_residue_day(int $start_time)
{
//当前号数
$now_day = (int)date('d');
//$now_day = 5;
//旧套餐使用开始的号数
$old_day = (int)date('d',$start_time);
//$old_day = 31;
$now_month_day = (int)date('t');
//$now_month_day = 28;
//获取当月天数
if ($now_day > $old_day) {
$all_day = $now_month_day;
$residue_day = $all_day - ($now_day - $old_day) + 1;
}else{
// 开始是22号,当前是5号
$all_day = (int)date('t',strtotime('last month'));
//$all_day = 31;
// 如果上个月是31号,本月只有30号,那就最少30天收钱
// 反过来,上个月30号 本月31号
if ($all_day > $now_month_day) {
$all_day = $now_month_day;
}
// 开始是31号,本月只有30,29,28天
if ($all_day < $old_day) {
$old_day = $all_day;
}
// 例如 上个月总数是30 ,开始是28号,当前的5号, 30-(30-28+5)
$residue_day = $all_day - ($all_day - $old_day + $now_day) + 1;
}
return [
'all_day' => $all_day,
'residue_day' => $residue_day,
];
}
php 计算每月周期天数和剩余天数
于 2022-06-28 11:47:40 首次发布