2013-01-05 72 views
1

爲了在php中獲得UTC抵消,我可以使用date("Z"),但是我認爲這會返回相對於服務器時區的UTC偏移量,而不是相對於我想要獲得的用戶計算機的時間。當我搜索時,我發現通過javascript getTimezoneOffset()函數可以獲得UTC相對於用戶計算機時區的偏移量,該函數返回UTC時間和本地時間之間的時差,以分鐘爲單位。我已經成功地在我的php腳本中使用了這個javascript函數。現在我的問題是:javascritp函數是否始終(或在大多數情況下)可靠地返回相對於用戶計算機的精確UTC偏移量?JavaScript getTimezoneOffset()函數可靠地返回準確的UTC偏移量嗎?

回答

1

這取決於用戶的日期/時間設置。它會根據瀏覽器在用戶計算機上設置的時區給出偏移量。

但請注意,當您使用JavaScript時,它在客戶端上運行,即在瀏覽器上運行,而不在服務器端運行。所以你不能在PHP中使用它,除非:

  • 當用戶第一次訪問你的網站時,你將它存儲在cookie中(通過javascript)。
  • 您進行AJAX調用以存儲PHP代碼以將其存儲在會話中。
  • 如果要在用戶計算機上顯示時間,請發送要顯示的日期與now()之間的時間差,然後將其添加到用戶的getTime()或顯示差異(即7小時前, 2分鐘前等)。