Я работаю со значениями ячеек даты и времени, и пока значения даты работают, время оказывается немного болезненным.
$value = $worksheet->getCell($cellPosition)->getValue();
$date = new \DateTime();
$date->setTimestamp(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($value));
echo '<td>' . $date->format('i:s') . '</td>' . PHP_EOL;
Однако в этом примере: $value
равно: 0,375 вместо: 09:00, поэтому форматирование не выполняется.
Как отключить форматирование значений по умолчанию?
Сценарии могут изменять тип данных, используемый для возврата значений даты, вызывая \PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType($returnDateType)
метод.
Как $returnDateType
использовать константу RETURNDATE_PHP_OBJECT
,
Тогда значение даты, возвращаемое вызывающему сценарию при любом доступе к функциям даты и времени в Excel, будет PHP DateTime object
Других решений пока нет …