如何使用phpexcel操作日期格式

时间:2016-01-28 00:25:38

标签: date formatting phpexcel

我正在使用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数组。

1 个答案:

答案 0 :(得分:0)

您需要手动执行....您知道哪些列包含日期,因此请返回" raw" MS Excel时间戳并使用PHPExcel_Shared_Date::ExcelToPHP()PHPExcel_Shared_Date::ExcelToPHPObject()转换为unix时间戳或DateTime对象,然后您可以使用标准PHP date()函数或DateTime object的format()方法,可以以您想要的任何格式转换为人类可读的日期字符串。

或者,在调用toArray()之前,将MS Excel数字格式掩码重置为您对这些列/单元格的任何日期/时间格式。