Bool (false) Результат при разборе Float на дату в PHP из Excel - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужно изменить формат даты из моего Excel, чтобы загрузить в дБ.В Excel эта строка уже в формате даты.

Когда я отлаживаю эту строку, результатом является float (43772).Затем я пытаюсь изменить формат, используя date_create_from_format .Но теперь результат date всегда bool (false) или ошибка: date_format () ожидает, что параметру 1 будет DateTimeInterface, логическое значение .Мой код такой:

$column = 'A';
$row = 2;

while ($objexcel->getCell('A' . $row)->getValue() != '' && $objexcel 
>getCell('B' . $row)->getValue() != '') {

$tgl = $objexcel->getCell('D' . $row)->getValue();
$date = date_create_from_format('d/m/Y', $tgl);   /* here problem */
$update = date_format($date, 'Y-m-d');   /* here problem */

}

Можете ли вы помочь мне, как решить эту проблему?

1 Ответ

0 голосов
/ 07 февраля 2019

Это значение даты не является меткой времени Unix;это сериализованная временная метка MS Excel ... вы можете использовать getFormattedValue() вместо getValue(), чтобы прочитать ее как отформатированную строку (при условии, что вы читаете файл с readDataOnly, установленной в false; или вы можете использовать ExcelToPHP() и ExcelToPHPObject() методы, доступные в классе PHPExcel_Shared_Date для преобразования его в метку времени Unix или объект DateTime

...