我正在使用PHP将数据从MySQL数据库导出到Excel表格中。一切正常,但是日期字段数据在Excel工作表中会自动从YYYY-mm-dd转换为dd-mm-YYYY。
PHP代码:
$results = mysql_query("SELECT name,contact,reg_date FROM reg");
$headerDisplayed = false;
while ($data = mysql_fetch_array($results, MYSQL_NUM)) {
// Add a header row if it hasn't been added yet
if ( !$headerDisplayed ) {
// Use the keys from $data as the titles
fputcsv($fh,$data);
$headerDisplayed = true;
}
// Put the data into the stream
fputcsv($fh, $data);
}
DB表

Excel格式的输出:

预期输出:

发布于 2018-05-18 20:26:31
首先,你根本不应该使用mysql_query,请使用http://php.net/manual/en/book.mysqli.php或http://php.net/manual/en/book.pdo.php。MySQL模块有很多缺陷和安全漏洞。
现在回答你的问题:
在将日期放入fputcsv函数之前,您可以使用DateTime class将其转换为您喜欢的值,这是PHP本身的一部分。
您可以执行以下操作:
$date = DateTime::createFromFormat('Y-m-d H:i:s', $data['date']);
$data['date'] = $date->format('d-m-Y H:i:s');来源:http://php.net/manual/en/datetime.format.php
编辑:我误解了问题,抱歉。我认为这与您的系统语言设置有关。我将此答案保留在这里,以防有人偶然发现它:)
https://stackoverflow.com/questions/50411169
复制相似问题