PHPExcel – 获取强制格式的date

我在PHP应用程序中使用PHPexcel。 我用->getFormattedValue()从Excel工作表中获取date。

当我使用excel文件A它给了我以下的date格式: 05/11/2016但是与文件B它给出以下格式: 05-Nov-17

如何强制date格式以获得像这样的格式05-Nov-17所有的时间? 如何将其从PHPExcel直接转换为PHPdate?

您可以使用getValue()方法返回单元格中的原始值,

 $excelTimestampValue = $objPHPExcel->getActiveSheet() ->getCell('A12') ->getValue(); 

这将返回一个MS Excel序列化的时间戳值; 即表示自1900年1月1日(或1904年1月1日以来,取决于电子表格文件正在使用哪个日历)的天数的浮点数。 从那个时间戳值,你有很多select:

将该时间戳转换为一个unix时间戳,然后您可以使用PHP的date()函数格式化该时间戳。

 $unixTimestamp = PHPExcel_Shared_Date::ExcelToPHP($excelTimestampValue); echo date('dM-Y', $unixTimestamp); 

将该时间戳转换为一个PHP DateTime对象,然后可以使用format()方法对其进行format()

 $dto = PHPExcel_Shared_Date::ExcelToPHPObject($excelTimestampValue); echo $dto->format('dM-Y'); 

使用MS Exceldate格式掩码直接格式化为string。

 echo PHPExcel_Style_NumberFormat::toFormattedString($excelTimestampValue, 'dd-mmm-yyyy');