PHPExcel - 使用强制格式获取日期

时间:2017-11-11 22:29:10

标签: php excel date phpexcel

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

当我使用excel文件A时,它给出了以下日期格式:05/11/2016 但是对于文件B,它提供以下格式:05-Nov-17

如何强制使用日期格式以便始终获得此05-Nov-17这样的格式?如何将其直接从PHPExcel转换为PHP日期?

1 个答案:

答案 0 :(得分:1)

您可以使用getValue()方法

从单元格返回原始值
$excelTimestampValue = $objPHPExcel->getActiveSheet()
    ->getCell('A12')
    ->getValue();

将返回MS Excel序列化时间戳值;也就是说,浮点数表示自1900年1月1日(或1904年1月1日以来的天数,具体取决于电子表格文件使用的日历)。从该时间戳值开始,您有许多选项:

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

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

将该时间戳转换为PHP DateTime对象,然后您可以使用format()方法对其进行格式化。

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

使用MS Excel日期格式掩码将其直接格式化为字符串。

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