转换dd / mm / yyyy hr:min:sec时,PHP excel reader错误

时间:2014-01-01 15:31:03

标签: php phpexcel

嗨朋友我正在使用以下代码来阅读excel表,其中包含类似于02/11/2013 15:27:40的值,但是当我按照下面显示的方法进行操作时,我得到的输出是41580.6442129629。我不确定是什么错误请帮我解决这个问题。

$this->load->library('excel');
error_reporting(E_ALL);
require_once 'application/third_party/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($path);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); // e.g. 10
$highestColumn = $objWorksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // e.g. 5

for ($row = 2; $row <= $highestRow; ++$row) {
    for ($col = 0; $col <= $highestColumnIndex; ++$col) {
                            if($col == $date_col)
                            {
                                    $date_column = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
                                    echo $date_column;
                            }
                       }
             }

2 个答案:

答案 0 :(得分:1)

试试这个。

$date_column = new DateTime(PHPExcel_Shared_Date::ExcelToPHP($date_column));
echo $date_column->format('d/m/Y H:i:s');

或者

echo date('d/m/Y H:i:s', PHPExcel_Shared_Date::ExcelToPHP($date_column));

答案 1 :(得分:0)

在我的情况下,无法从EXCEL2007正确获取日期。

因此格式为“3/9/2014 00:00:00”(九月)的日期为“41885”。

使用此功能研究格式和类似似乎很简单,准确转换为正确的日期:

function datefix_excel($excel) {

    $dif=(41885-$excel)*86400;
    $seconds=1409737670-$dif;
    $date=date("d/m/Y",$seconds);
    return $date; }

这是自我解释的。希望它能提供一些帮助。