我的mySQL服务器以美国格式显示日期

时间:2012-06-20 10:31:56

标签: php mysql

有没有办法让我的mysql和php服务器自动显示英国格式的日期。

目前我运行一个函数来转换它们。

数据存储在数据库2012/06/20的方式我希望服务器存储它的方式20/06/2012

--------------更新------------------ // SQL_data来自表

echo $ sql_date; // 2012/06/20

然后我用它来交换日期。

function fixdate($in_date) {
    $split_data = explode('-', $in_date);
    if(count($split_data) == 3) {
        $year = $split_data[2]; $month = $split_data[1]; $day = $split_data[0];
        return "$year-$month-$day";
     } else {
        return FALSE;
     }
}

然后我显示日期。

然后我再次使用该函数将其存储在数据库中,因为它不接受任何其他格式。

我的问题是:有没有办法可以将默认的mysql date formate设置为英国标准。

希望这次我能更好地解释它。

3 个答案:

答案 0 :(得分:1)

尝试在PHP中使用setlocale函数。对于MySQL,尝试使用documentation

更改区域设置

答案 1 :(得分:1)

在PHP中,您可以使用date()和strtotime()函数将日期转换为您想要的任何格式。例如。对于DD-MM-YYYY

date('d-m-Y', strtotime($date_from_db))

答案 2 :(得分:0)

显然你可以设置mysql来接受未经授权的日期,强烈不建议这样做。

因此,我必须格式化从数据库中检索日期并插入日期的日期。

DATE_FORMAT(mydate, '%d/%m/%Y')

我的例子

public function customerList()
    {
        return $this->db->select("
            SELECT
            _payments.id,
            _payments.dueDate,
            _payments.paymentMethod,
            _payments.paymentAmount,
            DATE_FORMAT(_payments.paidDate,'%d/%m/%Y') as paidDate,
            _payments.custId,
            _customers.firstname,
            _customers.lastname,
            _customers.advisor
            FROM
            _payments
            Inner Join _customers ON _payments.custId = _customers.id
            WHERE _payments.paid = 0
        ");
    }