比如,我们需要录入一个入职日期,在Excel中显示如下:
导入系统后,全部变为了4开头的几位数字,这是为什么呢?
原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为:
要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的类,但我更推荐通过判断后再进行数据转换,方法如下:
1 2 3 4 5 6 7 8 9 |
$tempData['work_start_time'] = $sheet->getCellByColumnAndRow(6,$row)->getValue(); // 这里对Excel的时间类型进行判断 $type1 = strpos($tempData['work_start_time'], '/'); $type2 = strpos($tempData['work_start_time'], '-'); if($type1 || $type2){ $tempData['work_start_time'] = $tempData['work_start_time']; }else{ $tempData['work_start_time']=date('Y-m-d', ($tempData['work_start_time'] - 25569) * 24 * 3600); } |
先读取Excel中改行指定单元格的数据,判断时间类型,用||,或的方式,排除可能存在的文本日期,然后通过计算,即可得到正确的时间,存入数据库即可。
原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/10460