2011-06-25 55 views
2

我使用php time()函數在用戶在我的網站上發帖後將時間插入到數據庫中。我將此值存儲爲int。我相信time()函數輸入自1970年以來的秒數。我現在想要獲取當前時間,這樣我就可以減去兩者並獲得自用戶發佈後的時間。我有兩個問題關於這個過程:來自數據庫的php時間

  1. 時間來自用戶的計算機或我的服務器或其他地方?
  2. 是否將時間函數存儲爲Int是執行此操作的最佳方法?
+0

如果您需要存儲超過1970年和2038年的日期,請考慮使用mySQL的'DATETIME'格式。 –

+0

如果數據表示一個時間,我會使用DATETIME或TIMESTAMP在列定義中標識該時間,而不是int。如果您希望自1970年以來以秒爲單位返回到您的程序,請使用SQL函數。 – Kwebble

回答

3

是否時間來從用戶的計算機 或其他地方我的服務器或 別的地方嗎?

  • 其基於服務器時間

存儲爲做到這一點的詮釋 的最佳方式計時功能?

  • 由於返回的值是int,所以存儲在int中是要走的路。
1

參見time的PHP文檔。

time函數返回一個int,所以使用它並保存它是最簡單和最有效的方法。

由於PHP在服務器上執行,服務器使用時間。確保在你的PHP配置中設置你的時區。如果你沒有,使用詳細的日誌級別應該警告你。

1
  1. 這是服務器時間。
  2. 這取決於你要用它做什麼。 DATETIME字段可能會更好地爲某個月的SQL查詢提供服務。
1

您可以考慮使用DATETIME列類型來存儲此類數據。以您想要的方式恢復值非常容易(例如:作爲使用MySQL的UNIX_TIMESTAMP函數的UNIX時間戳,使用DATE_FORMAT的格式化日期/時間...)。

您可以在某種程度上覆蓋UNIX timpestamp的1970年限制,例如存儲並顯示1970年之前某個人的生日。如果您只是將數據存儲在DATETIME列中並使用UNIX_TIMESTAMP獲取int,沒有。

0

它最好記錄數據庫中的int,並使用mktime函數來解析頁面。