laravel-excel的导入及时间格式导入mysql的问题

问题:原时间为2018-09-20但导入就变成了09-20-18

    use Excel;

    public function import(Request $request){

        ini_set('memory_limit','256M');

        if($request -> hasFile('excel') && $request -> file('excel') ->isValid()){

            size = $request -> file('excel') -> getSize();

            if($size > 2*1024*1024){

                $this -> setReturnInfo(-1,'请限制文件在2M之内',[]);

            }


            $ext = $request -> file('excel') -> getClientOriginalExtension();   

            $realPath = $request -> file('excel') -> getRealPath();//临时文件的绝对路径

            // 上传文件

            $filename = date('Y-m-d-H-i-s') . '-' . uniqid() . '.' . $ext;

            $bool = Storage::disk('local') -> put($filename, file_get_contents($realPath));

            if($bool == true){

                $filePath = 'storage/app/' . $filename;

                $data = [];

                $data = Excel::load($files, function($reader) use( &$res ) { 

                    $reader = $reader->getSheet(0); 

                    $res = $reader->toArray(); 

                });

                foreach ($data as $key => $row) {//从第三行开始导入

                if($key == '0' || $key == '1'){

                continue;

                }

                $arr = [];

                $arr['entry_date'] = $row[0];//这样导入的数据有问题

                $arr['creat_date'] = $row[001];


                DB::table('xxxx') -> insert([//这样导入到数据库为0000-00-00(字段胡默认值)

                    'entry_date' => $arr['entry_date'],

                    'creat_date' => $arr['creat_date']

                ]);

            }


        }

    }

解决:打印出在excel中获取的数据发现,原来是2018-09-20,获取到的是09-20-18

    将获取的时间数据按'-'分割成数组,在组合成时间就可以了

    if($row[0]!=""){

            $entry_date=explode("-",$row[10]);

            $arr['entry_date']=date("Y-m-d",mktime(0,0,0,$entry_date[0],$entry_date[1],$entry_date[2]));

        }else{

            $arr['entry_date'] = '0000-00-00';

        }

你可能感兴趣的:(laravel-excel的导入及时间格式导入mysql的问题)