我需要您的帮助。 我找不到解决这个问题的方法。 我认为这应该很简单,但是这让我忙了几个小时。
{{Form::date('age', $data[0]->age)}}
当我使用form :: date函数时,我让用户选择生日。 选择信息后,将其以以下格式(“ Y-m-d”)保存到数据库中,这将非常有效。
如果用户要编辑出生日期,则将其显示为(“ d-m-Y”),如何将其显示为(“ Y-m-d”)?我已经在网上搜索了几个小时,尝试过使用Carbon,date_format等等,似乎没有任何效果。
我在这里做错了什么? 我正在使用laravel 5.2
谢谢您的帮助。
更新
从Mysql面板获取信息的查询:
$userId = auth()->user()->id;
$data = Setting::where('user_id', '=', $userId)->first();
return view('pages_user.mysettings')->with('data', $data);
模型:
protected $dates = ['age'];
protected $table = 'date_userinfo';
输入框
{{ Form::date('age', $data->age->format('Y-m-d')) }}
答案 0 :(得分:1)
尝试一下:
{{ Form::date('age', date('Y-m-d', strtotime($data[0]->age))) }}
它将日期转换为Y-m-d
格式。
我强烈建议您检出Carbon。它内置于Laravel中,并且可以很好地与日期配合使用。
更新: 在您的模型集中:
protected $dates = ['age'];
然后,在您看来:
{{ Form::date('age', $data[0]->age->format('Y-m-d')) }}
此外,我不建议使用$data[0]
来获取数据。如果是多行,请使用foreach
,否则可以通过在查询中使用->first()
来拉一条记录(而不是多条记录)。
编辑:
解决方法,但是只要日期格式为d-m-Y
{{ Form::date('age', \Carbon\Carbon::createFromFormat('d-m-Y', $data->age)->format('Y-m-d') }}
答案 1 :(得分:0)
问题是Google Chrome,而不是laravel。 Google chrome将日期更改为本地标准。