我对Laravel中的日期验证有一点问题。 当我在2018年1月25日填写日期字段时,数据库中保存的是2020-01-01,就好像“ 25”是2 x 12 +1。
我只想以'd / m / Y'格式保存正确的日期。这是我的代码:
请求:
"date" => "required|date",
型号:
public $dates = ['created_at', 'updated_at', 'date'];
public function setDateAttribute($date) {
$this->attributes['date'] = Carbon::createFromFormat('d/m/Y', $date);
}
我该怎么办?
谢谢您的帮助:)
答案 0 :(得分:0)
使用format('d/m/Y')
设置日期格式,并将数据库字段更改为string (varchar)
。
public $dates = ['created_at', 'updated_at', 'date'];
public function setDateAttribute($date) {
$this->attributes['date'] = Carbon::createFromFormat('d/m/Y', $date)->format('d/m/Y');
}
答案 1 :(得分:0)
用于Laravel中的日期类型验证
Public function index () {
$rules = [
'start_date' => 'date_format:Y-m-d|after:today'
];
if ($this->request->has('start_date') && $this->request->get('start_date') != $this->request->get('end_date')) {
$rules['end_date'] = 'date_format:Y-m-d|after:start_date';
} else {
$rules['end_date'] = 'date_format:Y-m-d|after:today';
}
return $rules
}
答案 2 :(得分:0)
使用input
作为date
,它将按照用户系统日期格式显示日期,并将值作为mysql格式传递。
<input type="date" name="start_date">