如何获得第 1、2、3 周格式碳 laravel

How to get 1st, 2nd, 3rd week format carbon laravel

我需要从 CarbonPeriod 获取第 1、2、3 和 4 周格式。我应该怎么做才能使其成为文本?

$carbonPeriod = CarbonPeriod::create($startDate, '1 week', $endDate);
            foreach ($carbonPeriod as $period) {
                $startPeriod = clone $period;
                $endPeriod = clone $period;
                $startRange = $parsedStartDate->gt($startPeriod->startOfWeek()) ? $startDate : $startPeriod->startOfWeek()->format('Y-m-d');
                $endRange = $parsedEndDate->lt($endPeriod->endOfWeek()) ? $endDate : $endPeriod->endOfWeek()->format('Y-m-d');
                $labels[] = $period->translatedFormat('F D Y'); //i need Jan 1st week 2021, Jan 2nd week 2021 and etc for the labels

            }
$CarbonPeriod = Carbon::now()->subDays(20);
    $today = Carbon::now();
    $weeks = intval(floor(($CarbonPeriod->diff($today)->days) / 7)) . 'st';
    

结果“第二”

$carbonPeriod = CarbonPeriod::create($startDate, '1 week', $endDate);

foreach ($carbonPeriod as $index => $period) {
    $startPeriod = clone $period;
    $endPeriod = clone $period;
    $startRange = $parsedStartDate->gt($startPeriod->startOfWeek()) ? $startDate : $startPeriod->startOfWeek()->format('Y-m-d');
    $endRange = $parsedEndDate->lt($endPeriod->endOfWeek()) ? $endDate : $endPeriod->endOfWeek()->format('Y-m-d');
    $labels[] = $carbonPeriod->translate('ordinal', [':number' => $index + 1]);
}

如果我理解正确的话,你想要给定时间段内的序数周。如果确实如此,那么您可以使用以下方法执行您需要的操作:

$locale = 'xxx'; //  Replace with your locale here
$nf = new NumberFormatter($locale, NumberFormatter::ORDINAL);
$carbonPeriod = CarbonPeriod::create($startDate, '1 week', $endDate);
foreach ($carbonPeriod as $i => $period) {
    $startPeriod = clone $period;
    $endPeriod = clone $period;
    $startRange = $parsedStartDate->gt($startPeriod->startOfWeek()) ? $startDate : $startPeriod->startOfWeek()->format('Y-m-d');
    $endRange = $parsedEndDate->lt($endPeriod->endOfWeek()) ? $endDate : $endPeriod->endOfWeek()->format('Y-m-d');
    $ordWeek = $nf->format($i);
    $labels[] = $period->translatedFormat('F')." $ordWeek". __("week")." ".$period->translatedFormat('Y'); // Should say "January 1st week 2021 
}

请注意,这需要 intl extension