DateTime::__construct(): 无法解析位置 0 (1) 的时间字符串 (16/07/2020):意外字符

mik*_*olu 4 laravel

在我的 Laravel 5.8 应用程序中,我有:

config/app.php

'date_format' => 'd/m/Y',
'date_format_js' => 'dd/mm/yy',
Run Code Online (Sandbox Code Playgroud)

模型

use Carbon\Carbon;

class HrHolidayDate extends Model
{
    protected $table = 'hr_holiday_dates';

    protected $fillable = [
        'holiday_name',
        'holiday_date',

    ];

    protected $dates = [
        'holiday_date'
    ];


    protected $casts = [];


    public function setHolidayDateAttribute($input)
    {
        $this->attributes['holiday_date'] =
            Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
    }


    public function getHolidayDateAttribute($input)
    {
        return Carbon::createFromFormat('Y-m-d', $input)
            ->format(config('app.date_format'));
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试在 Blae 视图中对其进行格式化,如下所示:

view

@foreach($holidays as $key => $holiday)
    <td>
        {{Carbon\Carbon::parse($holiday->holiday_date)->format('d-m-Y') ?? '' }}
    </td>
@endforeach
Run Code Online (Sandbox Code Playgroud)

当我想渲染视图刀片时,出现此错误:

[2020-07-15 11:57:56] production.ERROR: DateTime::__construct(): 无法解析位置 0 (1) 的时间字符串 (16/07/2020):意外字符(视图:C:\ xampp\htdocs\laravelapp\resources\views\hr\holiday_dates\index.blade.php) {"userId":466,"exception":"[object] (ErrorException(code: 0): DateTime::__construct():无法解析位置 0 (1) 处的时间字符串 (16/07/2020):意外字符(视图:C:\xampp\htdocs\laravelapp
esources\views\hr\holiday_dates\index.blade.php)在 C:\ xampp\htdocs\laravelapp\vendor
esbot\carbon\src\Carbon\Traits\Creator.php:81, Exception(code: 0): DateTime::__construct(): 无法解析时间字符串 (16/07/2020) at位置 0 (1):C:\xampp\htdocs\laravelapp\vendor
esbot\carbon\src\Carbon\Traits\Creator.php:81)处的意外字符[stacktrace]

我该如何解决?

谢谢

sta*_*sta 7

因为 Carbon 不理解d/m/Y开箱即用的格式。如果您使用斜杠,则应该是mm/dd/yyyy这种情况。d/m/Y不是官方日期格式。

您可以使用 :

{{ Carbon\Carbon::createFromFormat('d/m/Y', $holiday->holiday_date)->format('d-m-Y') }}
Run Code Online (Sandbox Code Playgroud)