我正在使用phpexcel将excel表中的特定数据集读取到数组中。
// example $cell_range = 'A2:AH35';
$cell_collection = $objPHPExcel->getActiveSheet()->rangeToArray($cell_range, NULL, True, TRUE);
在该表中,两列(L& N)含有日期甲酸盐dd-mmm-yy(01-Jan-16)。为了将其上传到数据库,我需要将其转换为格式yyyy-mm-dd(2016-01-01)。
我不能简单地将rangeToArray
的最后一个参数更改为FALSE
(格式化保留),因为这只会给我一组x数而不是日期。
那么如何重新格式化日期呢?可以在phpexcel读取数据的级别上,也可以通过操作生成的$cell_collection
数组。
答案 0 :(得分:0)
您需要手动执行....您知道哪些列包含日期,因此请返回" raw" MS Excel时间戳并使用PHPExcel_Shared_Date::ExcelToPHP()
或PHPExcel_Shared_Date::ExcelToPHPObject()
转换为unix时间戳或DateTime
对象,然后您可以使用标准PHP date()
函数或DateTime
object的format()
方法,可以以您想要的任何格式转换为人类可读的日期字符串。
或者,在调用toArray()
之前,将MS Excel数字格式掩码重置为您对这些列/单元格的任何日期/时间格式。