2012-06-24 24 views
1

假設我需要捕獲訂單,並且我需要保存訂單時間的時間戳。另外,我需要一種方法來根據用戶何時請求密碼重置代碼來跟蹤令牌何時設置爲過期。我的服務器位於德克薩斯州,我如何容納遍佈美國的用戶?我想要做的最後一件事是詢問他們在哪個時區,所以我不知道如何處理UTC的顯示時間,這會混淆普通人。我應該在MySQL中將我的時間戳保存爲UTC嗎?

回答

2

首先,你應該隔離顯示存儲。僅僅因爲您以特定方式存儲價值並不意味着您必須以這種方式展示它。

其次,想想你實際捕獲的是什麼:這是一個時間戳。一個全球性的「現在」的想法。時區在這裏並不重要 - 不同時區的兩個合理人員會同意他們哪個先下了訂單,而不考慮他們的時區。

因此,將時間戳存儲在UTC中是完全合理的。事實上,時間戳幾乎總是最好的存儲在UTC中。只有當你要求用戶的想法的日期/時間,當地時間有時是有意義的。

至於如何顯示在用戶的本地時間的價值 - 這是棘手:

  • 你可以根據自己的送貨地址等猜測它
  • 你能猜出它的基礎上的IP地址(能有一些有趣的問題)
  • 你可以一度猜測,並將其存放在偏好,所以他們可以如果有必要
  • 你能做到這一點的Javascript解決它,提供UTC值,然後將其轉換爲LO在客戶端

CAL時間(當猜測時區,你可以隨時使用UTC本地轉化率在Javascript功能來幫助您實現這一猜測準確,當然)。

+0

明白了,我想我的soluition是我需要得到某種JS,以便能夠以某種方式獲取該人的位置。 – luckytaxi

相關問題