2

使用 PHPExcel 读取 excel 时遇到日期格式问题。即使我使用$objReader->setReadDataOnly(false);了获取单元格的格式,但对我不起作用。这就是我从 Excel 中读取数据的方式。

$get_excel_data = $objPHPExcel->getActiveSheet()->rangeToArray("A1:".$highestColumn.$highestRow);

当我尝试打印日期时,它显示为 03/06/13,我尝试使用 mysl 日期格式转换

date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($val[1])); // echoing 2036-03-06

但它不起作用,任何人都可以指导我解决这个问题吗?主要问题是我没有以数字格式( Excel )获取日期,而是将日期显示为 03/06/13,

4

2 回答 2

14

我已经解决了日期问题

$get_excel_data = $objPHPExcel->getActiveSheet()->rangeToArray("A1:".$highestColumn.$highestRow);           
$i = 1; 
foreach($get_excel_data as $val) {
    //In my case, 2nd column is a date so that I format using 
    $date = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($objWorksheet->getCellByColumnAndRow(1, $i)->getValue()));  // array index 1              
}               
于 2013-09-18T09:58:28.973 回答
1

如果PHPExcel_Shared_Date::ExcelToPHP($val[1]);返回03/06/13,那么这应该工作:

$date = new DateTime(PHPExcel_Shared_Date::ExcelToPHP($val[1]));
echo $date->format('Y-m-d');

或者

echo date('Y-m-d', strtotime(PHPExcel_Shared_Date::ExcelToPHP($val[1])));
于 2013-09-18T09:36:47.477 回答