Acf 日期选择器字段格式

问题描述 投票:0回答:1

我使用代码片段显示表格中的一些记录,并将表格导出到excel,其中一个字段是日期选择器,如果我没有在代码中指定格式,它将以日/月/年格式显示这就是我需要的,但是当我在 Excel 中导出 yhe 表时,它会以 m/d/Y 格式显示,即使 excel 将其识别为 d/m/Y 格式。我使用下面的代码来指定格式

echo "<td>" . date('d/m/Y',  strtotime($payroll_date)) . ".  </td>";
但是,当我在 Excel 中收到正确的格式时,它会在网站前端的 html 表格中显示 m/d/Y。

谢谢您的帮助。

php excel advanced-custom-fields
1个回答
0
投票

您当前的 HTML 表格代码:

echo "<td>" . date('d/m/Y', strtotime($payroll_date)) . "</td>";
  1. 解决 Excel 导出格式问题 将数据导出到 Excel 时,Excel 根据打开它的系统的区域设置来解释日期。要解决此问题:

使用 PHPExcel 或 PhpSpreadsheet

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

// Assume $payroll_date is the value you want to export
$formatted_date = date('d/m/Y', strtotime($payroll_date));

// Create a new spreadsheet
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// Set the date in a cell as text
$sheet->setCellValueExplicit('A1', $formatted_date, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);

// Save the Excel file
$writer = new Xlsx($spreadsheet);
$writer->save('export.xlsx');

TYPE_STRING 确保日期被视为文本,而不是数字日期值。

© www.soinside.com 2019 - 2024. All rights reserved.