日期验证Laravel

时间:2018-07-24 08:02:42

标签: php laravel date php-carbon

我对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);
}

我该怎么办?

谢谢您的帮助:)

3 个答案:

答案 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">