PhpSpreadsheet Date::PHPToExcel() 添加时间
PhpSpreadsheet Date::PHPToExcel() adding time
我正在尝试添加没有时间部分的 date field into an Excel file。
这是我当前的代码:
$dt = !empty($date) ? Date::PHPToExcel(DateTime::createFromFormat('Y-m-d', $date)) : null;
$spreadsheet->getActiveSheet()->setCellValue("A1", $dt);
$spreadsheet->getActiveSheet()->getStyle("A1")->getNumberFormat()->setFormatCode('yyyy-mmm-dd');
时间以某种方式添加到日期中,虽然它在打印的内容上不可见,但当您单击单元格时,它也包含时间部分。我只想要日期,如何防止这种情况发生?
我也试过:
$dt = !empty($date) ? $date : null;
$spreadsheet->getActiveSheet()->setCellValue("A1", $dt);
$spreadsheet->getActiveSheet()->getStyle("A1")->getNumberFormat()->setFormatCode('yyyy-mmm-dd');
但是这个显示 YYYY-MM-DD
即使我将数字格式设置为 YYYY-MMM-DD
。
显然 DateTime::createFromFormat()
如果您不指定,则添加当前时间。
解决方案是在格式中添加 !
以将所有字段重置为我从 this comment.
获得的 zero-like 值
$dt = !empty($date) ? Date::PHPToExcel(DateTime::createFromFormat('!Y-m-d', $date)) : null;
$spreadsheet->getActiveSheet()->setCellValue("A1", $dt);
$spreadsheet->getActiveSheet()->getStyle("A1")->getNumberFormat()->setFormatCode('yyyy-mmm-dd');
我正在尝试添加没有时间部分的 date field into an Excel file。
这是我当前的代码:
$dt = !empty($date) ? Date::PHPToExcel(DateTime::createFromFormat('Y-m-d', $date)) : null;
$spreadsheet->getActiveSheet()->setCellValue("A1", $dt);
$spreadsheet->getActiveSheet()->getStyle("A1")->getNumberFormat()->setFormatCode('yyyy-mmm-dd');
时间以某种方式添加到日期中,虽然它在打印的内容上不可见,但当您单击单元格时,它也包含时间部分。我只想要日期,如何防止这种情况发生?
我也试过:
$dt = !empty($date) ? $date : null;
$spreadsheet->getActiveSheet()->setCellValue("A1", $dt);
$spreadsheet->getActiveSheet()->getStyle("A1")->getNumberFormat()->setFormatCode('yyyy-mmm-dd');
但是这个显示 YYYY-MM-DD
即使我将数字格式设置为 YYYY-MMM-DD
。
显然 DateTime::createFromFormat()
如果您不指定,则添加当前时间。
解决方案是在格式中添加 !
以将所有字段重置为我从 this comment.
$dt = !empty($date) ? Date::PHPToExcel(DateTime::createFromFormat('!Y-m-d', $date)) : null;
$spreadsheet->getActiveSheet()->setCellValue("A1", $dt);
$spreadsheet->getActiveSheet()->getStyle("A1")->getNumberFormat()->setFormatCode('yyyy-mmm-dd');