PHPEXCEL读取日期时间显示不正确问题的解决方法

2021-07-01   阅读:1227   分类:后端    标签: PHP

phpexcel 读取excel数字时,显示为一串数字(时间都是类似于这样的数字:41890.620138889),如何将数字转换为对应的日期来显示呢?

<?php
public static function get_date_by_excel($date){
	if (!$date || $date == '0000-00-00') return null;

	$unix_time = \PHPExcel_Shared_Date::ExcelToPHP($date);

	return gmdate('Y-m-d H:i',$unix_time);

}
?>

注意:PHPExcel从文档中获取的时间,是以格林威治时间标准(GMT/UTC)格式(与咱们当地时间相差8小时)!

在格式化时间时,需要注意date和gmdate的区别

1、date:格式化本地时间

2、gmdate:格式化格林威治时间

<?php
$data = [
	'number'=>$PHPExcel->getActiveSheet()->getCell("A" . $currentRow)->getValue(),
	'nickName'=>$PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue(),
	'name'=>$PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue(),
	'tel'=>$PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue(),
	'money'=>$PHPExcel->getActiveSheet()->getCell("E" . $currentRow)->getValue(),
	'time'=>self::get_date_by_excel($PHPExcel->getActiveSheet()->getCell("F" . $currentRow)->getValue()),
	'is_pay'=>$PHPExcel->getActiveSheet()->getCell("G" . $currentRow)->getValue(),
	'shop_name'=>$PHPExcel->getActiveSheet()->getCell("H" . $currentRow)->getValue(),
	'remarks'=>$PHPExcel->getActiveSheet()->getCell("I" . $currentRow)->getValue(),
	'status'=>0,
	'created_at'=>date('Y-m-d')
];
?>



【腾讯云】预热专享1888元早鸟券一键领取,云服务器等爆品抢先购低至4.2元/月

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/adetail/724.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸 头像

简忆博客
勤于学习,乐于分享。

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×