2013-08-26 32 views
0

我將如何改變「註冊」日期在MySQL表中的顯示方式?我希望以這種方式格式化日期:2013年8月26日星期一下午6:04而不是基於24小時制的通常標準格式。在MySQL表中包含星期幾

目前我有:

$value = mysql_real_escape_string($_POST['First']); 
$value2 = mysql_real_escape_string($_POST['Last']); 
$value3 = mysql_real_escape_string($_POST['City']); 
$value4 = mysql_real_escape_string($_POST['State']); 
$value5 = mysql_real_escape_string($_POST['Country']); 
$value6 = mysql_real_escape_string($_POST['Email']); 

SQL:

$sql = " 
    INSERT INTO members 
    (First, Last, City, State, Country, Email, Date) 
    VALUES 
    ('$value', '$value2', '$value3', '$value4', '$value5', '$value6', NOW()) 
"; 

我想改變的格式是如此簡單:

$sql = " 
    INSERT INTO members 
    (First, Last, City, State, Country, Email, Date) 
    VALUES 
    ('$value','$value2','$value3','$value4','$value5','$value6' ("l-F-j-Y)) 
"; 

回答

0

您可以參考php docs幫助你格式化日期。它會按照你想要的方式工作。但是,我個人更喜歡在數據庫中使用unix時間戳,然後通過上面的函數以任何我想要的方式對其進行格式化;它允許您隨時將其從格式更改爲格式,而無需手動編輯每個數據庫條目。

備註:您應該查看PDOMySQLi,因爲在將來的PHP版本中將刪除MySQL函數。

+0

是的,您應該擔心顯示層中的顯示,但我強烈反對任何人建議將日期存儲爲數據庫中的unix時間戳,而不是使用列的本地日期,日期時間或時間戳數據類型。除了最具體的用例外,最好使用日期/時間字段類型。 –

+0

unix時間戳有什麼不好? – Criesval

+0

幾乎不可避免地,當您在數據庫中放置日期字段時,有人會希望對其進行查詢,無論是在應用程序中使用還是僅在報告中使用。當你有一個unix時間戳字段時,爲這些目的而工作是非常痛苦的,因爲你需要將該字段轉換爲日期時間格式來執行諸如「顯示當前月份的所有記錄」之類的內容。因爲您必須轉換字段值,所以這會阻止您在該字段上使用任何種類的索引來執行查詢。 –

2

讓日期爲日期。只需按照MySQL希望存儲它的方式進行存儲,然後按照您希望它呈現在您的表示層中的方式進行轉換即可。即使沒有任何表示層只是使用MySQL中的日期格式化函數來格式化select語句中的日期。

查看this link查看這些功能。