2

我使用PHPExcel库导入 Excel 文件 (.xlsx) 并插入 MySQL。我在日期字段中面临两个问题:

1- 在 excel 表中,我尝试将日期格式更改为所需的格式。保存后,单元格显示我需要的格式,(yyyy/mm/dd)但是当我双击编辑它们时,它们再次变回原来的样子(mm/dd/yyyy)

2-当文件通过 PHPExcel 导入 MySQL 时,除了插入的日期列之外,所有列都正确插入0000-00-00。Excelsheet 中的格式与 MySQL 中的格式相同,但输入全为零。

请帮忙!

4

2 回答 2

5

PHPExcel 中的值存储是 Excel 序列化的日期时间值(一个浮点数,表示自 1900 年 1 月 1 日或 9004 年 1 月 1 日以来的天数,具体取决于使用的是 Windows 还是 Mac 日历)。更改格式只是更改此值的显示方式。

您将需要提前知道单元格是否包含日期,或者使用该PHPExcel_Shared_Date::isDateTime()方法对其进行测试,并进行适当的转换。然后,您可以使用getFormattedValue()将值作为格式化字符串返回来检索它;或使用内置转换函数将其转换为 unix 时间戳 ( PHPExcel_Shared_Date::ExcelToPHP()) 或 PHP DateTime 对象 ( PHPExcel_Shared_Date::ExcelToPHPObject()),然后您可以在 MySQL INSERT/UPDATE 语句中使用它之前使用标准 PHP 日期格式化函数对其进行格式化。

于 2013-09-25T07:08:27.407 回答
4

将日期格式更改为yyyy-mm-dd,将文件另存为 CSV 并将其导入数据库。

于 2013-09-24T17:42:56.063 回答