Дата разбора не работает в laravel carbon - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь разобрать дату в правильном формате. Поэтому я использовал Carbon для разбора даты. Я использую vuejs в качестве переднего конца и laravel в качестве заднего конца. Я посылаю дату вместе с другой информацией от Vue к Laravel. Если я обычно отправляю дату, то разбираю ее правильно. Но если я отправлю его как formData, он не сможет разобрать дату и показать ошибку, говоря Failed to parse time string (Wed Oct 02 2019 08:35:00 GMT+0600 (Bangladesh Standard Time)) at position 41 (d): Double timezone specification

Код Vue

`

                sendData(){
                    const config = {
                        headers: { 'content-type': 'multipart/form-data' }
                    }

                    var formData = new FormData;
                    formData.append('firstName',this.patient.firstName)
                    formData.append('lastName',this.patient.lastName)
                    formData.append('userName',this.patient.userName)
                    formData.append('email',this.patient.email)
                    formData.append('password',this.patient.password)
                    formData.append('admissionDate',this.patient.admissionDate)
                    formData.append('birthday',this.patient.birthday)
                    formData.append('nid_no',this.patient.nid_no)
                    formData.append('nid_image',this.patient.nid_image)
                    formData.append('gender',this.patient.gender)
                    formData.append('address',this.patient.address)
                    formData.append('country',this.patient.country)
                    formData.append('state',this.patient.state)
                    formData.append('city',this.patient.city)
                    formData.append('postalCode',this.patient.postalCode)
                    formData.append('phoneNumber',this.patient.phoneNumber)
                    formData.append('status',this.patient.status)
                    formData.append('id',this.patient.id)

                    var self = this
                   self.$http.post(apiDomain + 'api/patientAdmission',formData,config)
                   .then(response => {
                          if(response.status === 200){
                                console.log(response)
                                self.successModal()
                          }
                    }).catch((e)=>{
                      console.log(e)
                      self.failedModal()
                    })
                }

`

здесь patient - это объект, расположенный в data()

код laravel

`

публичная функция PatientAdmission (Patient_registration $ request) {

    $validated = $request->validated();

    $firstName = $request ->firstName;
    $lastName = $request ->lastName;
    $email = $request ->email;
    $userName = $request ->userName;
    $password = bcrypt($request ->password);
    $admissionDate_formated = Carbon::parse($request->admissionDate);
    $birthday_formated = Carbon::parse($request->birthday);
    $gender = $request ->gender;
    $address = $request ->address;
    $country = $request ->country;
    $state = $request ->state;
    $city = $request ->city;
    $postalCode = $request ->postalCode;
    $phoneNumber = $request ->phoneNumber;
    $nid_no = $request ->nid_no;
    $nid_image = 'nid_image';
    $status = $request ->status;
    $date = Carbon::now()->toDateTimeString();
    $randomString = Str::random(32);

    Mail::raw('echo"<a href="http://localhost:8080/emailConfirmation/'.$email.'/'.$randomString.'">Click Here</a>"', function ($message) use ($email,$randomString){
        $message->to($email);
    });

    DB::table('users')->insert(
        ['first_name' => $firstName, 'last_name' => $lastName, 'email' => $email,'userName' => $userName,'password' => $password,'joining_date' => $admissionDate_formated,'birthday' => $birthday_formated,'gender' => $gender,'address' => $address,'country' => $country,'state' => $state,'city' => $city,'postal_code' => $postalCode,'phone_number' => $phoneNumber,'image' => null,'department' => null,'short_biography' => null,'doctor_id' => null,'receptionist_id' => null,'admin_id' => null,'nid_no' => $nid_no,'nid_image' => $nid_image,'status' => $status,'role' => 4,'email_verified_at' => NULL,'remember_token' => NULL,'remember_token' => $randomString,'created_at' => $date,'updated_at' => $date,'created_by' => '1','updated_by' => '1']
    );
  }

`

Что я делаю не так?

1 Ответ

1 голос
/ 26 октября 2019

У меня была похожая проблема, добавление часового пояса к carbon :: parse решило проблему для меня.

В вашем случае это будет что-то вроде этого

$admissionDate_formated = Carbon::parse($request->admissionDate, 'GMT'); 
$birthday_formated = Carbon::parse($request->birthday, 'GMT');

Вы можетеизмените GMT ​​на часовой пояс по вашему выбору. Если вам нужна дата в определенном формате, вы можете дополнительно отформатировать ее, как показано ниже

$admissionDate_formated = Carbon::parse($request->admissionDate, 'GMT')->format('Y-m-d'); 
$birthday_formated = Carbon::parse($request->birthday, 'GMT')->format('Y-m-d');

Надеюсь, это поможет. Вы можете просмотреть документацию Carbon для получения дополнительных примеров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...