本帖最后由 skyboy209999 于 2010-07-09 10:39:34 编辑

解决方案 »

  1.   

    读取EXCEL 2010-6-30 14:00后,得到的40359.58333333334date("H:i:s",strtotime('0:00:00')+24*60*60*0.58333333334);可以得到14:00。40359  怎么得到2010-6-30?
      

  2.   

    excel 中的时间值是自1900年以来的天数,注意是格林威治时间
    php 中的时间值是自1970年以来的秒数转换算法为:
    $偏移 = 40359 - strtotime('2010-6-30')/(24*3600); //25569 留着备用$t = 40359.58333333334; //读取到的值
    $n = intval(($t - 25569) * 3600 * 24); //转换成1970年以来的秒数
    echo gmdate('Y-m-d H:i:s', $n);//格式化时间
      

  3.   

    楼上正解,顶一个$t = 40359.58333333334; //读取到的值
    $n = intval(($t - 25569) * 3600 * 24); //转换成1970年以来的秒数
    echo gmdate('Y-m-d H:i:s', $n);//格式化时间