php导入excel时,获取的日期变成浮点数转化为本地时间的办法

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 呢,为什么这样算呢  有知道的大神或者哪里有错误可以留言哈

发布了42 篇原创文章 · 获赞 10 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/huihuikuaipao_/article/details/86511965