在php中使用“spreadsheet-reader”阅读date

我正在使用电子表格阅读器来读取一些.xls.xlsx并将它们转换为.csv

这是我的简化代码:

 require_once(dirname(__FILE__) . '/../ext/spreadsheet-reader/SpreadsheetReader.php'); require_once(dirname(__FILE__) . '/../ext/spreadsheet-reader/php-excel-reader/excel_reader2.php'); $pCsvPath = Config::$generatedCSVPath . "/" . str_replace(array(".xlsx", ".xls"), ".csv", $pFileName); $csv = fopen($pCsvPath, "w"); $pReader = new SpreadsheetReader($pFilePath); // Read only the first sheet $pSheets = $pReader -> Sheets(); $pReader -> ChangeSheet(0); foreach ($pReader as $row) { fputcsv($csv, $row); } 

一切正常,但我遇到了date的问题。

使用以下格式的.xls / .xlsx文件中有一列2015-02-10将它们写入.csv ,此列的输出为2015201520152015-FebFeb-TueTue

我如何使用我上面发布的代码将其转换为.csv ,但将date保持为正确的格式( 2015-02-10 )?

提前致谢。

编辑:如果我手动更改date从01-01-2015年1月1日到01-01-2015 (把年底在结束)date正确parsing。 如果没有办法将date保存为2015-01-01 ,那么如何使用我在上面发布的代码将该行更改为正确的格式(年底)?

我知道我可以手动parsing一个date,但不使用上面的代码,因为当我调用$pReader = new SpreadsheetReader($pFilePath)函数时,所有东西都被加载,并且没有办法操作date。

使用date , strtotime

 date( "dmY", strtotime( "2015-02-10" ) ) 

将会把你的date格式转换成10-02-2015

 foreach ($pReader as $row) { // assuming date is stored on 3rd place , $row[2] $str = $row[0] ."+_+". $row[1]."+_+".date( "dmY", strtotime( $row[2] ) ); fputcsv($csv,explode("+_+",$str)); }