PHP中在做EXCEL数据导入的时候,遇到EXCEL单元格中的日期时间显示的是标准的格式化时间,实际上是浮点型(单元格设置成文本可体现),这个时候要导入数据就必须对其进行转化,转成我们需要的时间格式。
在网上查了好多,有两种方法,这里附上原创链接link:https://blog.csdn.net/yicixing7/article/details/54290446 (PHPEXCEL中自带的方法),更简单的连接 link:https://blog.csdn.net/wendan564447508/article/details/52596176 供大家参考),
但是在测试时发现第一种方法并不准确,第一种方法是用的PHPEXCEL中自带插件中的方法,这里的value是从excel中获取的时间,是一个浮点数PHPExcel_Shared_Date::ExcelToPHP($value)
在excel中转成文本格式是
在php中获取到的就是这个值,用插件中自带的这个方法PHPExcel_Shared_Date::ExcelToPHP($value)返回的是时间戳
1546546452
转成北京时间是2019年1月4日4点多,这与excel中的时间是不相符的。链接中作者测试正确不知道是怎么回事,难道我测试错了。。。
使用第二种方法就简单好多了,比较好用,方法如下:
这里的$data_array[$i]['C']是从excel中获取的时间。虽然出来的日期和excel上传的日期相符,不过本人无知,不知道gmdate里面为什么是 (日期-25569)*24*60*60 呢,为什么这样算呢 有知道的大神或者哪里有错误可以留言哈