问题:原时间为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';
}