Laravel:在保存到数据库之前将 m/d/Y 从 jQuery UI 日期选择器转换为 Y-m-d
Laravel: Converting m/d/Y to Y-m-d from jQuery UI Datepicker before saving to database
我正在尝试将日期从 jQuery UI 日期选择器保存到数据库。
我想在输入表单中选择日期时以 m/d/Y 格式显示日期。
当我尝试将其保存到数据库时,出现以下错误:
SQLSTATE[22007]:日期时间格式无效:1292 日期值不正确
我遵循了很多解决方案,但它对我不起作用。
我已经仔细查看了这个 link,虽然我按照所有内容正确操作,但它仍然返回相同的错误。
控制器代码
public function store(Request $request)
{
$user = Frontend::create($request->all());
}
型号代码
class Frontend extends Model
{
use HasFactory;
protected $table = 'frontend';
protected $fillable = ['date'];
public function setDateAtttribute($date)
{
$this->attributes['date'] = Carbon::createFromFormat($date)->format('Y-m-d');
}
}
配置>app.php
'date_format' => 'm/d/Y',
'date_format_javascript' => 'mm/dd/yy',
我是新手,如果有人能帮助我找到解决方案,那将是一个巨大的帮助。
您需要在 setDateAtttribute() 下更改
public function setDateAtttribute($date) { $this->attributes['date'] = Carbon::parse($date); }
你试过这个方法吗
$this->attributes['date'] = date("Y-m-d",strtotime($data));
嗯,首先,Carbons createFromFormat 方法有两个参数。
Carbon::createFromFormat($format, $time)
如果您在模型上定义 $dates 属性,例如:
class Frontend extends Model {
protected $dates = [
'date',
];
}
那你就不用担心格式化了,你只要传一个Carbon实例给
$date
属性。 Eloquent 应该会自动以正确的格式保存。另外,当检索到任何记录时,您的 $date
也将是 Carbon 实例。
这是一个专门针对您的 js 代码的代码:
$('#datepicker').datepicker({
dateFormat: 'Y-m-d',
});
我正在尝试将日期从 jQuery UI 日期选择器保存到数据库。
我想在输入表单中选择日期时以 m/d/Y 格式显示日期。
当我尝试将其保存到数据库时,出现以下错误: SQLSTATE[22007]:日期时间格式无效:1292 日期值不正确
我遵循了很多解决方案,但它对我不起作用。
我已经仔细查看了这个 link,虽然我按照所有内容正确操作,但它仍然返回相同的错误。
控制器代码
public function store(Request $request)
{
$user = Frontend::create($request->all());
}
型号代码
class Frontend extends Model
{
use HasFactory;
protected $table = 'frontend';
protected $fillable = ['date'];
public function setDateAtttribute($date)
{
$this->attributes['date'] = Carbon::createFromFormat($date)->format('Y-m-d');
}
}
配置>app.php
'date_format' => 'm/d/Y',
'date_format_javascript' => 'mm/dd/yy',
我是新手,如果有人能帮助我找到解决方案,那将是一个巨大的帮助。
您需要在 setDateAtttribute() 下更改
public function setDateAtttribute($date) { $this->attributes['date'] = Carbon::parse($date); }
你试过这个方法吗
$this->attributes['date'] = date("Y-m-d",strtotime($data));
嗯,首先,Carbons createFromFormat 方法有两个参数。
Carbon::createFromFormat($format, $time)
如果您在模型上定义 $dates 属性,例如:
class Frontend extends Model {
protected $dates = [
'date',
];
}
那你就不用担心格式化了,你只要传一个Carbon实例给
$date
属性。 Eloquent 应该会自动以正确的格式保存。另外,当检索到任何记录时,您的 $date
也将是 Carbon 实例。
这是一个专门针对您的 js 代码的代码:
$('#datepicker').datepicker({
dateFormat: 'Y-m-d',
});