2014-06-18 117 views
0

我一直在閱讀有關存儲和MySQL的顯示日期和時間,但我似乎還沒有找到適合我的需要的答案,或者我不能編碼我自己一個人的。我想充滿懷疑根本沒有幫助。PHP和MySQL:日期+時間存儲

的事情是,我有一個MySQL表的字段(文本),我想包含一定的時間和日期。目前我正在處理「d/m/Y H:i」格式,但我非常肯定這不是很整潔。我使用的格式是因爲它是我希望在網站上顯示的格式。

誰能告訴我處理這個問題的正確方法是什麼呢?也許我必須以另一種格式存儲日期和時間,並在將要顯示在網站上時將其轉換。

+2

MySQL有一個'DATETIME'列類型。你爲什麼使用文字? – Jon

+0

正確的方法是使用日期時間字段。然後您可以按日期排序。 – Robbert

+3

'd/m/Y H:i'是一種顯示格式。您始終以原生mysql格式存儲('yyyy-mm-dd hh:mm:ss'),並在顯示時將該日期值格式化爲您的人類可讀版本。以原生格式存儲將打開mysql的所有日期/時間函數,本地排序/分組等等......以text/varchar形式存儲...文本。 –

回答

0

我會說你的猜測是做到這一點的最好辦法。儲存於紀元以來秒鐘,然後轉換爲使用的方式是PHP提供任何衆多:

在此我們來看一看:

epoch time stamp

時代時間戳是有效的任何時區。這使得你的服務器位置不重要。您可以顯示時間,任何時區,只要您解析它正確地用PHP(或者你甚至可以做到這一點的客戶端與JS)

+0

之前有人說過,有一種合適的字段類型用於存儲這種數據,並且它爲排序,分組等提供了正確的功能......我想我會試着按照它應該完成的方式去做這件事嘿嘿感謝您的幫助,但很感激! – Southern

+1

@丹,缺點使用曆元是前曆元(1970)日期 - >'01月01 1950' – Sean

+0

@sean是這是不利的一面,同意 – Dan

1

你應該將它們存儲爲TIMESTAMP或DATETIME(檢查差異here

,然後將其轉換,當你寫或讀出值,例如:

INSERT INTO table (date_time) VALUES (CURRENT_TIMESTAMP) 

SELECT date_format(date_time, '%b %d %Y %h:%i %p') as date_time FROM table ...