美文网首页
laravel-excel的导入及时间格式导入mysql的问题

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

作者: 牵念_qiannian | 来源:发表于2018-09-20 09:28 被阅读0次

    问题:原时间为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的问题

          本文链接:https://www.haomeiwen.com/subject/rbrgnftx.html