我在php应用程序中使用PHPexcel。
我使用->getFormattedValue()
从Excel工作表中获取日期。
当我使用excel文件A时,它给出了以下日期格式:05/11/2016
但是对于文件B,它提供以下格式:05-Nov-17
如何强制使用日期格式以便始终获得此05-Nov-17
这样的格式?如何将其直接从PHPExcel
转换为PHP
日期?
答案 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');