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

时间:2015-12-17 13:36:54

标签: php laravel datetime format php-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 library):

$( 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);
    }

现在当我尝试将日期与时间存储在我的数据库中时,所以当我提交表单时,我收到此错误:

  

Carbon.php第425行中的InvalidArgumentException:意外数据   找到。发现意外数据。发现意外数据。尾随数据

enter image description here 我怎么能解决我的问题?

1 个答案:

答案 0 :(得分:1)

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

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

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

或通过立面:

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

然后你需要将日期格式与你的面具进行比较。 最终复制你从dd()获得的日期,然后启动

php artisan tinker

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