Php 使用CArbon创建具有未来日期的DatePeriod数组

Php 使用CArbon创建具有未来日期的DatePeriod数组,php,arrays,database,date,php-carbon,Php,Arrays,Database,Date,Php Carbon,我有一个课程模型,它在我的数据库中包含一个开始日期列。从这个start\u date我想为一周中的那一天生成一个接下来6周的数组 e、 例如,如果开始日期是2017年12月4日星期一,我想生成一个包含前6个星期一的数组,其中该数组还包括原始开始日期以及第6个日期 以下是我在我的模型中尝试的逻辑: use Carbon\Carbon; use Carbon\CarbonInterval; class Product { public function getRange($date

我有一个
课程
模型,它在我的数据库中包含一个
开始日期
列。从这个
start\u date
我想为一周中的那一天生成一个接下来6周的数组

e、 例如,如果
开始日期
是2017年12月4日星期一,我想生成一个包含前6个星期一的数组,其中该数组还包括原始
开始日期
以及第6个日期

以下是我在我的模型中尝试的逻辑:

use Carbon\Carbon;
use Carbon\CarbonInterval;

class Product {




    public function getRange($date) {
      return new \DatePeriod(
        Carbon::parse($date),
        CarbonInterval::week(),
        Carbon::parse($date)->addWeeks(6)
      );
    }

}
但是,当我尝试在模板中输出此内容时,出现以下错误:

在呈现模板期间引发了异常 (“无法将DatePeriod类的对象转换为字符串”)


建议?

您的异常告诉我您正在尝试使用
echo
print``或模板引擎方法输出对象。实际上,您使用的是一个
DatePeriod``对象作为字符串。相反,它应该这样使用:

$startDate = new DateTime();
$endDate = new DateTime();
$endDate->modify('+7 days');

$interval = new DateInterval('P1D');
$dateRange = new DatePeriod($startDate, $interval ,$endDate);
您的模板:

<?php foreach($dateRange as $date): ?>
    <?= $date->format("Ymd"); ?><br />
<?php endforeach; ?>



希望这有帮助。

您的异常告诉我您正在尝试使用
echo
print``或模板引擎方法输出对象。实际上,您使用的是一个
DatePeriod``对象作为字符串。相反,它应该这样使用:

$startDate = new DateTime();
$endDate = new DateTime();
$endDate->modify('+7 days');

$interval = new DateInterval('P1D');
$dateRange = new DatePeriod($startDate, $interval ,$endDate);
您的模板:

<?php foreach($dateRange as $date): ?>
    <?= $date->format("Ymd"); ?><br />
<?php endforeach; ?>



希望这有帮助。

根据您的例外情况,您的
DatePeriod
对象很好。在你看来,你处理这件事的方式是错误的。看看你的模板。根据你的例外,你的
DatePeriod
对象很好。在你看来,你处理这件事的方式是错误的。看看你的模板。