比如,我们需要录入一个入职日期,在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