簡體   English   中英

CarbonPeriod 2月通行證

[英]CarbonPeriod pass february

$start_day = $installment->'2021-01-29';
$end = Carbon::createFromFormat('Y-m-d', $start_day)->addMonth(24);
$period =  CarbonPeriod::create($start_day, '1month', $end);

$years = [];
foreach ($period as $date) {

    $years[$date->format("Y")][$date->format("m")]['title'] = $date->format("d ") .$date->format("n"));
    
}

結果

"29 January"
"01 March"

過了二月。 我希望它是 2 月 28 日而不是 3 月 1 日。 1 月 29 日 2 月 28 日和 3 月 29 日

這是正常行為,您會得到與DatePeriod相同的情況,如果日期高於一個月中的天數,它會溢出,但您仍然可以輕松檢測到當前日期與初始日期的溢出。

但是你應該更可能為此做一個簡單的for循環,這樣就不會那么矯枉過正了:

$start_day = '2021-01-29';
$start = CarbonImmutable::parse($start_day);

$years = [];
for ($i = 0; $i < 24; $i++) {
    $date = $start->addMonthsNoOverflow($i);

    $years[$date->format("Y")][$date->format("m")]['title'] = $date->format("d n");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM