在php中从excel获取日期时出错

在php中从excel获取日期时出错,php,phpexcel,Php,Phpexcel,我有一个excel文档,其中有一个date列,包含1-Dec-13之类的值,但是,当我通过PHPExcel读入此文件时,我得到了float(41609)。那么,你知道如何从41609得到正确的日期吗?或者说为什么41609是最重要的 要在excel中读取的我的代码: $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objReader->setReadDataOnly(true); $rdata = $objRe

我有一个excel文档,其中有一个
date
列,包含
1-Dec-13
之类的值,但是,当我通过PHPExcel读入此文件时,我得到了
float(41609)
。那么,你知道如何从41609得到正确的日期吗?或者说为什么41609是最重要的

要在excel中读取的我的代码:

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(true);
$rdata = $objReader->load($inputFileName);
$rdata = $rdata->getActiveSheet()->toArray(null,true,true,true);
你的问题是:

$objReader->setReadDataOnly(true);
MS Excel日期/时间序列化值是一个浮点数,仅由应用于单元格的数字格式掩码标识为日期或时间。在将readDataOnly设置为true时,您告诉PHPExcel只读取原始数据,而不读取任何格式信息,如数字格式掩码,因此PHPExcel不知道单元格中是否包含应解释为日期/时间的浮点,或者只是一个浮点

删除该行,或使用

$objReader->setReadDataOnly(false);
相反;PHPExcel将为您处理日期和时间


否则,您需要自己明确标识哪些单元格包含日期和时间,并使用PHPExcel_Shared_Date中的helper方法手动将值转换为Unix时间戳或PHP日期时间对象,然后使用标准PHP日期函数(或日期时间对象方法)要自己设置格式

Excel将日期存储为自1900年1月1日起的连续日期。自1900年1月1日起,2013年1月12日为41609天。你应该可以从那里做一些计算,这取决于你所说的正确日期。你救了我的命:D