Laravel Imported file Date Validation Before Tomorrow and Date Format in import class

Viewed 10

I have two date datatype columns being imported through the excel sheet having values strtdate'11/9/2022' nd enddate as '10/9/2022' . i wish for validation date format and date validation before tomorrow for startdate and so tenddate should always be after enddate.

I m using the tomodel. everything works fine. but when it comes to validation date_format is not correct. i have tried different ways : as commented in the code but all in vein. Same error exists:

public function model(array $row) {
++$this->rows;

                    $data= new Workshopattended([
                     'kvkname' => $this->kvkname,
                        'month' => $this->month,
                     'session' => $this->session,
                  'salutation' => $row['salutation'],
                 'nameofscientist' => $row['nameofscientist'],
                 'title' => $row['title'],
    //   'startdate' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['startdate'])->format('Y-m-d'),
                   
       'startdate'=> ( $row['startdate']),
       'enddate'=> ($row['enddate']),
     //  'startdate'=> Carbon::parse($this->transformDate($row['startdate']))->toDateString(),
       //'enddate'=>  Carbon::parse( $this->transformDate($row['enddate']))->toDateString(),


    //'startdate'=>          Carbon::parse(date('Y-m-d',($row['startdate']))),
   // 'enddate'=>   Carbon::parse(date('Y-m-d',($row['enddate']))),

   //'startdate'=> ($row['startdate'])->format('d-m-Y'),
   //'enddate'=> ($row['enddate'])->format('d-m-Y'),



   // 'startdate' => strtotime(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['startdate'])->format('Y-m-d')), //2022/04/03',
   // 'enddate' => \Carbon::parse($row['enddate'])->toDateString(),
                  'location' => $row['location'], 
                  'organizingagency' => $row['organizingagency'],
                 
    ]);

public function transformDate($value, $format ='d/m/Y') {

try {
    return \Carbon\Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value));
  } catch (\ErrorException $e) {
    return \Carbon\Carbon::createFromFormat($format, $value);
  }

}

0 Answers
Related