在PHP EXCEL中读取date格式

我已经阅读使用PHP Excel的Excel文件。

但是,该Excel文件包含一些date(时间格式)的PHP Excel中返回错误的值为这种情况

我的代码在下面

enter code hereinclude 'Classes/PHPExcel/IOFactory.php'; $inputFileName = 'index.xlsx'; // Read your Excel workbook try { $inputFileType = PHPExcel_IOFactory::identify($inputFileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFileName); } catch (Exception $e) { die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage()); } // Get worksheet dimensions $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); // Loop through each row of the worksheet in turn for ($row = 1; $row <= $highestRow; $row++) { // Read a row of data into an array $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE); foreach ($rowData[0] as $k => $v) echo "Row: " . $row . "- Col: " . ($k + 1) . " = " . $v . "<br />"; } 

任何人都可以帮助这个..在PHPExcel的这种情况下有一些特定的function..

我的inputexcel文件在下面

2013-12-12,2013-12-13

我的输出在下面

41621,41631

有一些方法隐蔽date格式输出数据?

当您使用PHPExcel_Reader_Excel5 lib读取xls文件时,文件中的数据是39984,但Excel使用date格式掩码将其格式化为“2009-06-20”?

Excel将保存date作为自1900年1月1日以来的天数(在Windows 1900日历上)的计数。 PHPExcel以相同的方式存储date,但不会自动为您设置格式。

您可以使用PHPExcel_Style_NumberFormat::toFormattedString(39984,PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY)自己格式化它们
或者其他任何格式掩码
PHPExcel_Style_NumberFormat
,或使用它将其转换为PHPdate
PHPExcel_Shared_Date::ExcelToPHP(39984)然后使用PHP的date()
函数可以根据需要进行格式化

例:

 $val = date('Ym-d', PHPExcel_Shared_Date::ExcelToPHP($cell->getValue())); 

另一种方法是使用gmdate:

 $excel_date = 43010; //here is that value 41621 or 41631 $unix_date = ($excel_date - 25569) * 86400; $excel_date = 25569 + ($unix_date / 86400); $unix_date = ($excel_date - 25569) * 86400; echo gmdate("Ymd", $unix_date); //result is 2017-10-02