strtotiem加一个月不准确

strtotime() 加一个月按30天算 不准确 稍微封装了下

function monthSum($date,$months){
    $reDate = '';
    $months += 1;
    $firstday = date('Y-m-01', strtotime($date));//当月1号
    $lastday = date('d', strtotime("$firstday +1 month -1 day"));//本月最后一天
    $newday = date("d",strtotime($date));
    if($lastday==$newday){ //最后一天情况
        $reDate = date("Y-m-d H:i:s",strtotime("$firstday +$months month -1 day"));
    }else{
        if($newday>28){//日期超出28号后
            $day = $lastday - $newday + 1;
            $reDate = date("Y-m-d H:i:s",strtotime("$firstday +$months month -$day day"));
        }else{//28号以内
            $months -= 1;
            $reDate = date("Y-m-d H:i:s",strtotime("+$months months" ,strtotime($date)));
        }
    }
    return $reDate;
}

//使用方法
echo monthSum('2017-01-31',1);



喜欢(0)

评论 抢沙发

表情