最近在做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行注销掉,然后稍加改动,在我的代码中就可以用了。上面就是我的修改之后的代码,有不对的地方,大家可以留言,谢谢!