我使用php time()
函數在用戶在我的網站上發帖後將時間插入到數據庫中。我將此值存儲爲int。我相信time()
函數輸入自1970年以來的秒數。我現在想要獲取當前時間,這樣我就可以減去兩者並獲得自用戶發佈後的時間。我有兩個問題關於這個過程:來自數據庫的php時間
- 時間來自用戶的計算機或我的服務器或其他地方?
- 是否將時間函數存儲爲Int是執行此操作的最佳方法?
我使用php time()
函數在用戶在我的網站上發帖後將時間插入到數據庫中。我將此值存儲爲int。我相信time()
函數輸入自1970年以來的秒數。我現在想要獲取當前時間,這樣我就可以減去兩者並獲得自用戶發佈後的時間。我有兩個問題關於這個過程:來自數據庫的php時間
是否時間來從用戶的計算機 或其他地方我的服務器或 別的地方嗎?
存儲爲做到這一點的詮釋 的最佳方式計時功能?
php時間函數是指服務器的內部時間。 您可以使用時間戳或日期時間在DB中存儲時間。 從我的經驗都有良好的表現。
閱讀關於時間類型的區別: http://dev.mysql.com/doc/refman/5.0/en/datetime.html
參見time的PHP文檔。
time
函數返回一個int,所以使用它並保存它是最簡單和最有效的方法。
由於PHP在服務器上執行,服務器使用時間。確保在你的PHP配置中設置你的時區。如果你沒有,使用詳細的日誌級別應該警告你。
您可以考慮使用DATETIME
列類型來存儲此類數據。以您想要的方式恢復值非常容易(例如:作爲使用MySQL的UNIX_TIMESTAMP
函數的UNIX時間戳,使用DATE_FORMAT
的格式化日期/時間...)。
您可以在某種程度上覆蓋UNIX timpestamp的1970年限制,例如存儲並顯示1970年之前某個人的生日。如果您只是將數據存儲在DATETIME
列中並使用UNIX_TIMESTAMP
獲取int,沒有。
它最好記錄數據庫中的int,並使用mktime函數來解析頁面。
如果您需要存儲超過1970年和2038年的日期,請考慮使用mySQL的'DATETIME'格式。 –
如果數據表示一個時間,我會使用DATETIME或TIMESTAMP在列定義中標識該時間,而不是int。如果您希望自1970年以來以秒爲單位返回到您的程序,請使用SQL函數。 – Kwebble