我需要爲PHP/MySQL表單存儲表單提交的時間戳。我希望能夠以最靈活的方式查詢此字段,以便在PHP中顯示數據。什麼是MySQL數據類型是最佳實踐,我應該使用哪個PHP函數來存儲/檢索數據?PHP/MySQL - 關於存儲時間戳的困惑
0
A
回答
0
使用DATETIME或DATE在數據庫:http://dev.mysql.com/doc/refman/5.6/en/datetime.html
什麼MySQL的數據類型是最好的做法,我應該使用存儲的PHP函數/檢索數據?
2
我會存儲這些數據爲MySQL提供TIMESTAMP
數據類型。這有很多的優勢比其他存儲選項,例如DATETIME
或INT
以下
- 它應特別是存儲特定時刻上市。無論您的服務器位於哪個時區以及您的mysql客戶端位於哪個時區,存儲在
TIMESTAMP
字段中的常量CURRENT_TIMESTAMP
的值將始終指向絕對時間線中的相同時刻。 - 它在內部使用4個字節的空間進行存儲,與
INT
數據類型相同 - 在常規查詢中,它會爲您提供漂亮的,可理解的值。
- 此外,這些漂亮的值將轉換爲連接到它的客戶端的時區。這可能對你有好處或壞處。如果mysql時區表已填充或類似於
SET time_zone='+5:30'
,則可以隨時將其更改爲所需的一個,包括UTC,set timezone='timezone'
。只有在期望的時區沒有夏令時調整的情況下,後者纔有效。 - 您的查詢可以利用MySQL瞭解此字段代表日期的事實。因此,您可以運行如下查詢:獲取所有註冊在過去3年5月份發生的事件。
- 使用內置函數來更改顯示格式以顯示unix時間戳或任何其他有效表單。
+0
什麼是你說的「絕對時間線」? –
+0
最終,我們必須將時間表示轉化爲物理世界中的事件。這是我在這裏提到的絕對時間線。一個例子就是倫敦奧運的就職典禮。無論您使用哪種時間格式(例如ISO8601,W3C),時區(例如UTC,IST,PDT),它都會始終指向相同的時間實例。 DATETIME數據類型沒有附帶它的時區信息,這使得客戶端必須從其他來源獲取此信息以指向時間軸上的有意義的點。 – Anshul
0
不知道你在說什麼時間戳,但對於UNIX時間戳,你需要INT類型字段。
相關問題
- 1. 關於保存到文件的困惑
- 2. 關於OpenGL內存管理的困惑
- 3. 關於CPU高速緩存的困惑
- 4. Adboe AGAL關於寄存器的困惑
- 5. 仍然困惑於Java時間戳等與MySQL
- 6. Task.Factory.StartNew - 關於池的困惑
- 7. 關於MutationObserver的困惑
- 8. 關於objc_getClass的困惑
- 9. 關於DBus的困惑
- 10. 關於AverageTimer32 PerformanceCounter的困惑
- 11. 關於Thread.Join的困惑
- 12. 關於MusicService的困惑
- 13. 關於結構的困惑
- 14. 關於memset的困惑
- 15. 關於FTP的困惑
- 16. 關於Access Specifier的困惑
- 17. 關於線程的困惑
- 18. 關於Kleene星的困惑
- 19. 關於PhoneGap/Cordova的困惑
- 20. 關於MKOverlayView的困惑
- 21. 關於[NSDate date]的困惑
- 22. 關於流的困惑
- 23. 關於GAC的困惑
- 24. 關於CTE的困惑
- 25. 關於URLMapping的困惑
- 26. 關於InetAdress.getByName()的困惑
- 27. 關於「implements Runnable」的困惑
- 28. iPhone:關於NSAutoreleasePool的困惑
- 29. 關於鎖的困惑
- 30. 關於FROM_UNIXTIME的困惑
可能的重複[是unix時間戳存儲時間戳的最佳方式?](http://stackoverflow.com/questions/178704/are-unix-timestamps-the-best-way-to-store-timestamps) –