我正在使用PHP将数据从mySQL数据库导出到Excel工作表中。所有工作正常但日期字段数据自动从exyl工作表中的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);
}

输入excel enter image description here
期待出局
答案 0 :(得分:0)
首先,你不应该使用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');
编辑:我误解了这个问题,道歉。 我认为这与您基于系统语言的Excel设置有关。我会在这里保留这个答案,万一有人偶然发现它:)