尝试将 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
方法应该可以解决。
我正在尝试从 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
方法应该可以解决。