簡體   English   中英

Laravel。 碳周期。 兩個日期之間的所有“單一”月份

[英]Laravel. CarbonPeriod. All "unical" months between two dates

如何在兩個隨機日期之間制作一個包含所有月份的時期? 我試過了:

$startDate = \Carbon\Carbon::parse('2021-11-17 23:59:59');
$endDate = \Carbon\Carbon::parse('2022-01-10 00:00:00');

$period = \Carbon\CarbonPeriod::create($startDate, '1 month', $endDate);

foreach($period as $month)
{
    echo '<pre>'.$month->format('Y-m-d').'</pre>';
}

但它不包括一月。

我也嘗試使用 floor():

$startDate = \Carbon\Carbon::parse('2021-11-17 23:59:59');
$endDate = \Carbon\Carbon::parse('2022-01-31 00:00:00');

$period = \Carbon\CarbonPeriod::create($startDate, '1 month', $endDate)->floor();

foreach($period as $month)
{
    echo '<pre>'.$month->format('Y-m-d').'</pre>';
}

但它包括甚至不需要的二月。

如何使用 CarbonPeriod 在兩個日期之間獲得純“單一”月份?

例如:開始日期:2021-11-17 23:59:59 &結束日期:2022-01-10 00:00:00 -> 11、12、01

另外:開始日期:2021-11-17 23:59:59 &結束日期:2022-01-31 00:00:00 -> 11、12、01

謝謝你。

使用startOfMonth()endOfMonth()如下。

    $startDate = Carbon::parse('2021-11-17 23:59:59')->startOfMonth();
    $endDate = Carbon::parse('2022-01-10 00:00:00')->endOfMonth();
    
    foreach (CarbonPeriod::create( $startDate, '1 month', $endDate) as $month) {
         echo  $month->format('m') . PHP_EOL;
    }

Output 將是:11 12 01

暫無
暫無

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

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