使用Dates formate YYYY-mm-dd将mySQL数据导出到Excel工作表

时间:2018-05-18 12:16:51

标签: php sql excel

我正在使用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);
}



 数据库表 enter image description here

输入excel enter image description here

期待出局

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,你不应该使用mysql_query,请使用http://php.net/manual/en/book.mysqli.phphttp://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

编辑:我误解了这个问题,道歉。 我认为这与您基于系统语言的Excel设置有关。我会在这里保留这个答案,万一有人偶然发现它:)