将调用方法addMonth()更改为addMonthsWithOverflow()carbon

问题描述 投票:0回答:1

我更新了所有用 Laravel 构建的项目。

在这个项目的任何部分我都有这个代码:

$FI->copy()->addMonth(3)->subDay();

但是当通过时

phpStan
返回

Method Carbon\Carbon::addMonth() invoked with 1 parameter, 0
         required.

我正在阅读,现在我必须更改为这种方法

$FI->copy()->addMonthsWithOverflow(3)->subDay();

但我不知道这个代码是否与之前的代码相同。我正在构建脚本来尝试检查两个日期是否相同:

$period = CarbonPeriod::create('2023-12-31T00:00:00Z', '2024-05-31T00:00:00Z');

    // Iterate over the period
    $dates = array();
    foreach ($period as $date) {
        $date->format('Y-m-d\TH:i:s\Z');
        $final_date = $date->copy()->addMonth(3)->subDay();
        array_push($dates, $final_date);
    }

    foreach ($dates as $key => $value){
        echo "key ".$key." value: ".$value."<br>";
    }

    echo "<br>";

    $dates2 = array();
    foreach ($period as $date) {
        $date->format('Y-m-d\TH:i:s\Z');
        $final_date = $date->copy()->addMonthsWithOverflow(3)->subDay();
        array_push($dates2, $final_date);
    }

    foreach ($dates as $key => $value){
        echo "key2 ".$key." value2: ".$value."<br>";
    }

我可以证明两个日期是相同的,但我需要确保这个新方法是正确的。

谢谢你的自述,抱歉我的英语不好

php laravel date php-carbon
1个回答
0
投票

在碳中,

addMonth()
addMonths()
之间存在差异。
addMonth()
 
addMonths(1)
, if you want to invoke the method with a parameter, as you are doing right now, it should be 
addMonths(3)
instead of
addMonth()`的简写。

© www.soinside.com 2019 - 2024. All rights reserved.