繁体   English   中英

PHP 的 CarbonPeriod 将区间内的所有数据放入一个数组中

[英]PHP's CarbonPeriod put all data from the interval into one array

所以我有这段代码从数据库中获取数据:

// get custom holidays
$companyHolidays = Holiday::query()->get();

现在得到这个 output 我做了dd($companyHolidays->toArray());

在此处输入图像描述

这些开始和结束日期需要使用 Carbon 放入 DateInterval 中。

所以我这样做了:

$parsedCompanyHolidays = CarbonPeriod::create($companyHolidays[0]->start, $companyHolidays[0]->end);

这个输出,使用dd($parsedCompanyHolidays->toArray())

在此处输入图像描述

现在的问题是它只显示第一个Osterferien而不是数据库中的其他? 有什么方法可以将它们全部放入一个数组中?

因为后面我需要continue生成这些日期内的日期

                   while ($i < $eventRepeats) {

                        // add one week
                        $eventStart->addDays(7);


                        if (in_array($eventStart->translatedFormat('Y-m-d'), $holidaysArray)) {
                            continue;
                        }

                        // todo: not grabbing the holidays correctly
//                        if (in_array($eventStart->translatedFormat('Y-m-d'), $parsedCompanyHolidays)) {
//                            continue;
//                        }


                        echo '<div class="text-primary font-normal mt-6 mb-2">'.$count++.'. Termin</div>';
                        echo '<div class="bg-gray rounded-lg border-l-4">';
                        echo '<div class="p-3">';
                        echo $eventStart->translatedFormat('l, d. F Y, H:i');
                        echo ' - ';
                        echo $eventEnd->translatedFormat('H:i');
                        echo '</div></div>';

                        // increase iteration
                        $i++;

                    }

:

$companyHolidays = Holiday::all();
$newholiday = [];
foreach($companyHolidays as $holiday){
  $newholiday[] = [
     'id' => $holiday->id,
     'title' => $holiday->title,
     'start' => $holiday->start,
     'end' => $holiday->end,
     'parsed_company_holidays'=> CarbonPeriod::create($holiday->start, $holiday->end);
        ];
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM