2017-03-09 72 views
1

我已經創建了一個依賴於客戶端的時區(在OS上設置)來呈現顯示的應用程序。客戶端計算機上的時區和時間未同步

但是,如果客戶端在他的電腦上錯誤地設置了他的時區,我的顯示屏就會中斷。

我的問題是:如何根據他現在在哪裏得到客戶的適當時區?

我明白,有幾個解決方案:我可以通過使用谷歌API來做到這一點,然後知道客戶端的位置。但是,這需要在訪問他的位置之前詢問客戶端權限。我也讀過你可以使用客戶端的IP地址,但這是不可靠的。最後,我可以問客戶。

有沒有其他的方式來動態地做到這一點? 任何幫助表示讚賞

PS:據我所知,問題是廣泛的,我的問題只需要一個可能性列表。沒有確定的答案。

+0

老實說,如果你不信任用戶正確地設置自己的時區,他的計算機上,然後沒有其他方法你描述(這是完全合法的)會工作,要麼。最終,用戶可以通過一種機制或另一種機制選擇假裝在其他地方。此外,有很多人選擇*將電腦設置爲另一個時區出於有效的商業原因,或在旅行時保持固定在其家鄉時區。這確實是個人偏好,而不是你可以強制執行的。 –

+0

這是真的。我試圖尋找解決方案,無法找到完全可靠的解決方案。然而,在一天結束的時候,我應該只是在向用戶提供他們所要求的信息,即根據他們所設定的信息,有意識地/不自覺地。 –

回答

0

Javascript new Date().toString();將爲您提供所需的關於用戶和時區(如果設置正確)的時間的所有信息。然後,您可以將其發送到您的服務器並執行您的打算。

var split = new Date().toString().split(" "); 
var timeZoneFormatted = split[split.length - 2] + " " + split[split.length - 1]; //outputs "GMT+1100 (AEDT)" 

沒有必要爲這一個許可。只要將它發送回您的服務器並且使用它即可。從這裏

Javascript代碼:Getting the client's timezone in JavaScript

+0

謝謝。這個鏈接幫助我解決了這個問題!你是老闆 –

相關問題