尝试将 DateTimePicker 中的值插入数据库,但导致无效的日期时间格式

Tried inserting the values from DateTimePicker to database, but resulting into Invalid datetime format

我正在尝试从 DateTimePicker 中插入值,因为它没有获取值,因为我是这个平台的初学者。那么如何转换格式存入数据库呢

public function store(Request $request) {

    $input = Request::all();
    $input['dob'] = Carbon::now();
    $input['app_date'] = Carbon::now();
    patient_user::create($input);
    return redirect('patient_user');
    $dob = Date::createFromFormat('Y-m-d');
    $app_date = Date::createFromFormat('Y-m-d');
    $dob->setTime(0, 0, 0);
    $app_date->setTime(0, 0, 0);
    echo $dob->getTimestamp();
    echo $app_date->getTimestamp();

        DB::table("patient_users")->insert([
            "patient_firstname"=>$request->get("patient_firstname"),
            "patient_lastname"=>$request->get("patient_lastname"),
            "middle_name"=>$request->get("middle_name"),
            "gender"=>$request->get("gender"),
            "dob"=>(new DateTime($request->get('dobe')))->format('Y-m-d'),
            "pat_age"=>$request->get("pat_age"),
            "app_date"=>(new DateTime($request->get('app_date')))->format('Y-m-d'),
            "app_time"=>(new DateTime($request->get('app_time')))->format('H:i:s'),
            "branch_location"=>$request->get("branch_location")
        ]);
    }

Migration:
Schema::create('patient_users', function (Blueprint $table) 
        {
            //$table->increments('id');
            //$table->increments('patient_id');
            $table->string('patient_firstname');
            $table->string('patient_lastname');
            $table->string('middle_name');
            $table->boolean('gender');
            $table->date('dob');
            $table->increments('pat_age');
            $table->date('app_date');
            $table->dateTimeTz('app_time');
            $table->string('branch_location');
            $table->timestamps();
        }

问题是你在函数的开头有一些不属于那里的代码。而return之后的代码将不会执行。

请用以下代码替换您的函数并告诉我它是如何工作的:

public function store(Request $request) {
    DB::table("patient_users")->insert([
        "patient_firstname"=>$request->get("patient_firstname"),
        "patient_lastname"=>$request->get("patient_lastname"),
        "middle_name"=>$request->get("middle_name"),
        "gender"=>$request->get("gender"),
        "dob"=>(new DateTime($request->get('dobe')))->format('Y-m-d'),
        "pat_age"=>$request->get("pat_age"),
        "app_date"=>(new DateTime($request->get('app_date')))->format('Y-m-d'),
        "app_time"=>(new DateTime($request->get('app_time')))->format('H:i:s'),
        "branch_location"=>$request->get("branch_location")
    ]);
}

您知道 return redirect('patient_user'); 之后的代码不是 运行,而是 patient_user::create($input); 行创建了您的记录吗?此外,您不应该直接在 Laravel 中使用 $_POST,您可以使用 $request->get();$input 数组

中的值

如果您已将日期字段设置为模型中 $dates 数组的一部分,您可以直接为其分配一个 unix 时间戳,Carbon 将为您处理其余部分。您的 patient_user class 看起来如何,您的 DateTimePicker return Unix 时间戳如何?

尝试用Carbon::parse($date)解析它:

...

"dob" => Carbon::parse($_POST["dob"])->format('Y-m-d'),

...

如果是任何日期格式,parse 方法应该可以解决。