Excel中的日期,php读取之后,变成了类似25569这样的数字,而不是Excel中显示的1970-1-1字符形式,原来excel中的日期是个1900-1-1开始的数字格式,比如1900-1-1是1,1970-1-1是25569.
提供一个读取的函数,代码如下:
<?php //excel日期转换函数 function excelTime($date, $time = false) { if (function_exists('GregorianToJD')) { if (is_numeric($date)) { $jd = GregorianToJD(1, 1, 1970); $gregorian = JDToGregorian($jd + intval($date) - 25569); $date = explode('/', $gregorian); $date_str = str_pad($date[2], 4, '0', STR_PAD_LEFT) . "-" . str_pad($date[0], 2, '0', STR_PAD_LEFT) . "-" . str_pad($date[1], 2, '0', STR_PAD_LEFT) . ($time ? " 00:00:00" : ''); //开源代码phprm.com return $date_str; } } else { $date = $date > 25568 ? $date + 1 : 25569; /*There was a bug if Converting date before 1-1-1970 (tstamp 0)*/ $ofs = (70 * 365 + 17 + 2) * 86400; $date = date("Y-m-d", ($date * 86400) - $ofs) . ($time ? " 00:00:00" : ''); } return $date; }
文章链接:
随便收藏,请保留本文地址!