日期值未正确设置

时间:2018-03-07 07:02:52

标签: php database laravel date laravel-5.3

我在我的表单中使用两种类型的日期,一种是'Ymd H:i:s'格式,用于created_at,updated_at,deleted_at,一种用于valid_to'Ymd'问题是我的created_at正在设置正确但是当我尝试保存 valid_from 时,它的值没有设置并且它在数据库中保存了 0000-00-00 我尝试了几个但是没有它似乎工作 控制器代码

 $input = $request->all();
//        if($request->input('valid_from')) {
//            $date = explode("-", $request->input('valid_from'));
//            $dob = $date['2'] . '-' . $date['1'] . '-' . $date['0'];
//        }
//        $input->valid_from = $dob;
//        return $request->all();
//        $date= $input->valid_from;
//        $date = \Carbon\Carbon::parse($request->current_date);
//
//        $day = $date->day;
//        $month = $date->month;
//        $year = $date->year;
//        dd($request);
//        $date = $input->valid_from;
//        $input->valid_from = date('M d,Y',$date);
////        $date = explode('-', $input->valid_from);
////        $input->valid_from = $date['2'].'-'.$date['1'].'-'.$date['0'];
        Promotion::create($input);

型号代码

protected $fillable = ['valid_from'];
    protected $dates = [
        'deleted_at',
// 'valid_from',


    ];
//    protected $valid = ['valid_from'];
//    public function getFormattedValidFromAttribute($valid) {
//        $valid = new Carbon($valid);
//        return $valid->format('d-m-Y');
////        return $this->valid_from->format('d-m-Y');
//    }
//    public function getFormattedValidToAttribute() {
//        return $this->valid_to->format('d-m-Y');
//    }
//    protected function getDateFormat()
//    {
////        return 'U';
//        return 'd-m-Y ';
//    }

移植

$table->date('valid_from');

2 个答案:

答案 0 :(得分:1)

您必须确保遵循列valid_from的date_format。

$input = $request->except('valid_from');
$input['valid_from'] = date('Y-m-d',strtotime($request->input('valid_from')));
Promotion::create($input);

答案 1 :(得分:0)

你得到了dd($ input-> valid_from); as" 17-03-2018" 。它是d-m-Y格式。

试试这个

Carbon::createFromFormat('d-m-Y', $request->valid_from)->format('Y-m-d');