PHP 电子表格和 PHP 中的日期格式不同

Date format in PHPSpreadsheet and PHP is different

我在我的 Excel 文件中设置格式日期,如 09/01/19 (dd/mm/yy)

我的函数可以像这样在 excel 中获取格式日期

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

但是当我尝试使用 excel 格式调用时,结果是 0909/0101/1919

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

在 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'

但是你所做的是将你的 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');

MS Excel 有自己的日期格式掩码,Microsoft 在 PHP 甚至存在之前创建 - https://support.office.com/en-us/article/Format-a-date-the-way-you-want-8E10019E-D5D8-47A1-BA95-DB95123D273E - 与 [=15= 使用的不同].如果你在PHPExcel/PHPSpreadsheet中使用getFormatCode()方法,它会return MS Excel格式掩码