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

时间:2017-11-30 04:03:02

标签: php arrays database date php-carbon

我有一个Courses模型,在我的数据库中包含start_date列。从start_date开始,我想为一周中的那一天生成接下来6周的数组。

例如,如果start_date是2017年12月4日星期一,我想生成一个包含前6个星期一的数组,其中数组还包括原始start_date以及第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的对象无法转换为字符串")。

建议?

1 个答案:

答案 0 :(得分:0)

您的异常告诉我您正在尝试使用echoprint``or a template engine method. You are essentially using a DatePeriod``object作为字符串输出对象。相反它应该像这样使用:

$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; ?>

希望这有帮助。