2012-06-20 89 views
0

有沒有辦法讓我的mysql和php服務器自動顯示英國格式的日期。我的mySQL服務器以美式格式顯示日期

此刻我運行一個函數來轉換它們。

將數據存儲在數據庫中的方式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日期格式設置爲英國標準格式。

希望我這次更好的解釋它。

+0

你能解釋一下嗎?你如何檢索日期,你如何顯示它們,你得到了什麼結果? – zerkms

+1

如果通過「功能」您的意思是「PHP功能」,然後看這裏:http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format – Themroc

+0

已更新它 –

回答

1

在PHP中,可以使用date()和strtotime()函數將日期轉換爲任何您想要的格式。例如。爲DD-MM-YYYY

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

這就是我做的所有準備,但我想要的待辦事項是... 如果我從數據庫它已經在正確的格式。 –

+0

@Stephen Wolfe:你還沒有回覆我的問題在http://stackoverflow.com/questions/11117695/my-mysql-server-is-displaying-dates-in-american-format/11117732#comment14565586_11117695。沒有它 - 它不可能幫你 – zerkms

+1

MySQL將日期存儲爲YYYY-MM-DD http://dev.mysql.com/doc/refman/5.1/en/datetime.html充其量,你可以使用date_format()在您的SQL中或在PHP中操作返回的日期。 – Rohit

1

嘗試在PHP中使用setlocale函數。對於MySQL嘗試更改區域設置documentation

+0

語言環境如何影響格式? – zerkms

+0

我可以查看您擁有的字符串的示例嗎? – odiszapc

+0

我不是一個OP,它不是一個答案,它只是一個隨機猜測(錯誤的一個) – zerkms

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 
     "); 
    }