php导出excel日期出现41395问题解决

14826次浏览

最近在做php excel导出的时候,不知道为什么,日期栏全都是41395,经过查证,原来是日期是一种凯撒日计数,具体什么是凯撒日计数,我也不是很清楚,你可以谷歌或者百度一下。要把我们运用的从1970年开始的日期运用函数GregorianToJD(),转换为凯撒日计数。哎。。看下面代码吧。

function exceltimtetophp($days,$time=false)  
{  
 if(is_numeric($days))  
 {  
  $jd = GregorianToJD(1, 1, 1970);  
  $gregorian = JDToGregorian($jd+intval($days)-25569);  
  $gregorian = strtotime($gregorian);  
  $gregorian = date("Y年m月d日",$gregorian);  
//  $myDate = explode('\\',$gregorian);  
//  $myDateStr = str_pad($myDate[2],4,'0', STR_PAD_LEFT)."-".str_pad($myDate[0],2,'0',STR_PAD_LEFT)."-".str_pad($myDate[1],2,'0', STR_PAD_LEFT).($time?"00:00:00":'\\');  
  return $gregorian;  
 }  
 return $time;  
}  

把41395的日期,调用这个函数就可以了。方法试过了,可以用的。

这个函数方法来源于网络,但是我经过调试以后,把没有用的2行注销掉,然后稍加改动,在我的代码中就可以用了。上面就是我的修改之后的代码,有不对的地方,大家可以留言,谢谢!

Tags: phpexcel

相关文章: