我使用PHPExcel库导入Excel文件(.xlsx)并插入MySQL。我在日期字段面临两个问题:
1-在Excel工作表中,我尝试将日期格式更改为所需的格式。保存后,单元格会显示我需要的格式(yyyy/mm/dd)
但是当我双击编辑它们时,它们会再次变回(mm/dd/yyyy)
之前的格式。
2-当文件通过PHPExcel导入MySQL时,除了插入0000-00-00
的日期列之外,所有列都被正确插入。 Excel表格中的格式与MySQL中的格式相同,但输入的全部为零。
请帮忙!
答案 0 :(得分:5)
PHPExcel中的值存储是Excel序列化日期时间值(浮点数,表示自19/1年1月1日或1/1/9004以来的天数,具体取决于是使用Windows还是Mac日历)。更改格式只是更改此值的显示方式。
您需要事先知道某个单元格是否包含日期,或者使用PHPExcel_Shared_Date::isDateTime()
方法对其进行测试,并进行适当的转换。然后,您可以使用getFormattedValue()
检索它,将值作为格式化字符串返回;或使用内置转换函数将其转换为unix时间戳(PHPExcel_Shared_Date::ExcelToPHP()
)或PHP DateTime对象(PHPExcel_Shared_Date::ExcelToPHPObject()
),然后您可以使用标准PHP日期格式化函数格式化它们,然后再使用它们你的MySQL INSERT / UPDATE语句。
答案 1 :(得分:4)
将日期格式更改为yyyy-mm-dd
,将文件另存为CSV并将其导入数据库。