Формат даты в PHPSpreadsheet и PHP отличается - PullRequest
0 голосов
/ 09 января 2019

Я установил в своем файле Excell дату формата, такую ​​как 09/01/19 (дд / мм / гг)

моя функция для получения даты в формате отлично от этого

$form = $sheet->getCellByColumnAndRow($j, $i)->getStyle()->getNumberFormat()->getFormatCode();

, но когда я пытаюсь вызвать с форматом Excell, результат 0909/0101/1919

$vax = '2019-01-09 03:09:00'; $createDate = new DateTime($vax);
$vax = $createDate->format($form); }

Ответы [ 2 ]

0 голосов
/ 09 января 2019

MS Excel имеет свои собственные маски форматирования даты, которые Microsoft создала еще до появления PHP - https://support.office.com/en-us/article/Format-a-date-the-way-you-want-8E10019E-D5D8-47A1-BA95-DB95123D273E - и которые не совпадают с теми, которые используются в PHP. Если вы используете метод getFormatCode() в PHPExcel / PHPSpreadsheet, он вернет маску формата MS Excel

0 голосов
/ 09 января 2019

В документации php вы можете увидеть [здесь] [1]

[1]: http://php.net/manual/en/datetime.format.php, требуется

$createDate->format($form); // in here you need to give ur format like this 'Y-m-d H:i:s'

но то, что вы сделали, это присвоили ему формат от ur excel, как этот 09/01/19 это не распознается методом php. поэтому измените вход для этой функции на формат «Y-m-d H: i: s»

$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');

так что меняй свой метод вот так

$createDate = new DateTime($vax);
$vax = $createDate->format('Y-m-d H:i:s');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...