有没有办法让我的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设置为英国标准。
希望这次我能更好地解释它。
答案 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
");
}