将PHP单元格值转换为日期

时间:2016-09-23 09:36:31

标签: php excel phpexcel

PHPExcel在同一个工作表模板上给出了不同的日期值格式

这是我使用的代码

$value = $this->worksheet->getCellByColumnAndRow(11, 1)  ->getFormattedValue();
$this->_date = DateTime::createFromFormat("j/n/Y",$value);

我尝试了以下答案,但他们没有解决它

PHPEXCEL get formatted date as is visible in excel file

how to get date from excel using PHPExcel library

这是我遇到的一个问题,我希望我可以帮助那些也有这个问题的人。

2 个答案:

答案 0 :(得分:1)

您可以将Excel序列化时间戳值直接转换为PHP DateTime对象,而无需创建格式化字符串,然后从中创建新的DateTime对象:

$msExcelSerializedTimestampValue = $this->worksheet
    ->getCellByColumnAndRow(11, 1)
    ->getCalculatedValue();  // getValue() is even easier if the cell doesn't contain a formula
$this->_date = PHPExcel_Shared_Date::ExcelToPHPObject($msExcelSerializedTimestampValue);

答案 1 :(得分:0)

这解决了我的问题

$value = $this->worksheet->getCellByColumnAndRow(11, 1)  ->getCalculatedValue();
$timeValue = (string)PHPExcel_Style_NumberFormat::toFormattedString($value,PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
$this->_date = DateTime::createFromFormat("Y-m-d",$timeValue);