日期格式返回调用字符串上的成员函数 format()

问题描述

我有以下内容在“开始”和“结束”日期之间创建一个日期数组。

use Carbon\Carbon;
$from = Carbon::createFromFormat('U',$start);
$to   = Carbon::createFromFormat('U',$end);

$dates = [];
for ($date = $from; $date->lte($to); $date->addDay()) {
    $dates[] = $date->format('d-m-y');
}

我需要将日期的输出格式化为 2020 年 10 月 4 日的格式。当我尝试转换日期时,它当前正在返回错误调用成员函数 format() on string”。

foreach ($dates as $date) :
  echo $date;
endforeach;

为了进行比较,我需要将日期最初设置为 d-m-y 格式:

foreach ($events as $event) :
    if (date('d-m-y',$event->start) === $date) : 
        .....further processing
    endif;
endforeach;

解决方法

Carbon 实例的范围通常用 CarbonPeriod 处理: https://carbon.nesbot.com/docs/#api-period

use Carbon\Carbon;

$dates = Carbon::parse('@' . $start)->daysUntil('@' . $end);

显示:

foreach ($dates as $date) :
    echo $date->format('d F Y');
endforeach;

比较:

foreach ($events as $event) :
    if ($event->start->isSameDay($date)) : 
        .....further processing
    endif;
endforeach;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...