php 读取excel 时间列

用PHP做一个导入excel功能,发现读取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" : '');  
        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;  
}  

  

原文地址:https://www.cnblogs.com/zhangwei412827/p/3626151.html