使用 laravel 和 carbon 正确格式化日期时间

Format date time properly with laravel and carbon

我尝试将日期和时间添加到我的数据库中,但我遇到了问题:

首先:我创建一个表单:

<div class="row">
<div class="form-group col-md-6">

    {!! Form::label('roba_spremna','The cargo is ready:') !!}
    {!! Form::text('roba_spremna', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group col-md-6">

    {!! Form::label('auction_end','Auction close at:') !!}
    {!! Form::text('auction_end', null, ['class'=>'form-control']) !!}
</div>
</div>

之后我添加 bootstrap-datetimepicker(js 库):

$( document ).ready(function() {
                $(function () {
                    $('#roba_spremna, #auction_end').datetimepicker();
                });
            });

我在文章模型中写道:

 protected $fillable = [
        'title',
        'body',
        'roba_spremna',
        'auction_end'
    ];

    protected $dates = [
        'roba_spremna',
        'auction_end'
    ];

    public function setRobaSpremnaAttribute($date){
        $this->attributes['roba_spremna']= Carbon::createFromFormat(''m/d/Y h:i a', $date);
    }

现在,当我尝试在我的数据库中存储日期和时间时,当我提交表单时出现此错误:

InvalidArgumentException in Carbon.php line 425: Unexpected data found. Unexpected data found. Unexpected data found. Trailing data

我该如何解决我的问题?

解决此问题的最佳方法是调试控制器或使用 dd() 函数。 无论如何,您的目标是在控制器中查看您的约会对象到底是什么样子。

取决于您是将请求作为参数注入控制器函数还是使用 facade dd 调用应该如下所示:

dd($request->get('roba_spremna'));

或通过门面:

dd(\Request::get('roba_spremna'));

然后您需要将日期格式与您的掩码进行比较。 最后复制你从 dd() 得到的日期,然后启动

php artisan tinker

创建一个包含日期字符串的变量 并尝试用它手动创建一个碳对象,看看你真正需要什么面具。