我有一个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的对象无法转换为字符串")。
建议?
答案 0 :(得分:0)
您的异常告诉我您正在尝试使用echo
,print``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; ?>
希望这有帮助。