Excel导入到MySQL:日期插入为0000-00-00

Cob*_*ear 2 mysql date phpexcel

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

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

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

请帮忙!

Mar*_*ker 5

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

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