【问题标题】:Creating a DatePeriod array with future dates using CArbon使用 CArbon 创建具有未来日期的 DatePeriod 数组
【发布时间】:2018-05-13 22:08:30
【问题描述】:

我的数据库中有一个 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 类的对象无法转换为字符串”)。

建议?

【问题讨论】:

    标签: php arrays database date php-carbon


    【解决方案1】:

    可能有点晚了。但是,当我查看此答案时,我注意到它与您的要求不符。

    导致您的Exception 的问题可能是因为您的视图文件中未正确处理DateRange。您需要遍历您的日期范围并使用“格式”方法输出每个日期。

    这里有一个如何做到这一点的例子:

    <?php foreach($product->getRange(new DateTime()) as $date): ?>
        <?= $date->format("Y-m-d"); ?><br />
    <?php endforeach; ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-30
      • 2021-10-24
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多