php把excel数值格式转成日期格式

Posted WebLinuxStudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php把excel数值格式转成日期格式相关的知识,希望对你有一定的参考价值。

在excel中:40847对应2011-10-31,是日期的数值型表现形式。
php中,echo date(‘Y-m-d H:i:s‘,40847);//结果1970-01-01 11:52:30

原因:
PHP 的时间函数是从1970-1-1日开始计算的,单位是秒数。但是 EXCEL的是从1900-1-1日开始算的单位是天数。
如果只计算1970以后的时间的话,就好处理了。
先获得 EXCEL中 1970-1-1 代表的数字,我查了是25569。
现在要把excel中的40947,在php中用函数正确的显示出来

function _excelNumToDate($num)
{
  $date = ‘‘;
  if ($num == (int)$num) {
    //获得秒数
    $time = ($num - 25569) * 24 * 60 * 60;
    return date(‘Y-m-d‘, $time);
  }
  return $date;
}

 

以上是关于php把excel数值格式转成日期格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将Excel日期快速转化为文本格式?

请问在excel中如何把数值YYYYMMDD转换为日期YYYY-MM-DD呢?如果直接设置单元格格式为日期,只能显示一连串

excel中日期格式是数字,想转成java的日期格式,遇到了问题

php控制导出excel的单元格格式

怎么把日期变为数字格式

如何将excel中的三列数值转换成一列日期