我正在将 Excel 2007 文件的内容导入 MySQL 数据库,但电子表格中的日期字段是自定义日期格式 (dd-mmm-yy)。我无法将其更改为文本,因为客户端将上传它,所以这是不可行的。当我导入文件的内容时,它会将日期作为数字插入,例如40978 而不是 12-Jan-09。我知道更改该字段的数据库表格式不会有任何效果,因为它的 exces formatitng 但是有人知道解决这个问题的方法吗?不改变电子表格的格式?
最佳答案
使用 PHPExcel 的内置转换方法,如 PHPExcel_Shared_Date::ExcelToPHP() 或 PHPExcel_Shared_Date::ExcelToPHPObject() 将日期值分别转换为 PHP/Unix 时间戳或 PHP DateTime 对象。
然后您可以使用适当的 PHP date() 或 $DateTimeObject->format() 函数将其格式化为 yyyy-mm-dd 格式字符串。
编辑
$excelDateValue = 40978;
$PHPTimeStamp = PHPExcel_Shared_Date::ExcelToPHP($excelDateValue);
echo $PHPTimeStamp,'<br />';
echo date('Y-m-d',$PHPTimeStamp),'<br />';
或
$excelDateValue = 40978;
$PHPDateTimeObject = PHPExcel_Shared_Date::ExcelToPHPObject($excelDateValue);
echo $PHPDateTimeObject->format('Y-m-d'),'<br />';
顺便提一句,Excel 日期戳 40978 是 2012 年 3 月 10 日(基于 Excel Windows 1900 日历)或 2016 年 3 月 11 日(基于 Excel Mac 1904 日历)。 2009 年 1 月 12 日将是 Excel 时间戳 39825(基于 Excel Windows 1900 日历)。
关于php - 使用PHPExcel将excel文件内容导入MySQL数据库(格式问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5406253/