2013-05-08 21 views
-1

我想根據位置獲取登錄用戶的本地時間。我想要一個連接到任何通用時間服務器(Google等)的庫,並返回作爲參數傳遞的位置的當前時間。是否有任何庫從其他服務器獲取任何位置的當前時間?

我的另一種選擇是將時間差存儲在SQL Server表中,並根據登錄用戶的UTC時間計算實際時間。但這種方法不會給出準確的結果,我也懷疑它將如何工作。

+0

只要記住,用戶可以更改他們的時區/時間並欺騙你,並使用代理來更改他們的物理位置,如果你去geoip查找。與Web客戶端打交道時,很難找到一個防傻瓜的解決方案。 – 2013-05-08 17:56:58

+0

即使他們更改了他們的時區,我們也會爲每個用戶名保存在單獨的數據庫中。用戶無權訪問此數據庫。 – RKh 2013-05-08 18:04:14

回答

1

TimezoneDb提供免費的API:http://timezonedb.com/api

GenoNames還具有能得到一個給定位置的當前時間一個RESTful API:http://www.geonames.org/export/ws-overview.html

如果您想要格林威治標準時間,您可以使用英國格林威治。

+0

將此庫與ASP.NET 3.5集成很容易嗎? – RKh 2013-05-08 17:58:21

+0

是的。用WebClient對象使用c#調用api,或者你也可以使用jquery ajax – 2013-05-08 18:00:01

+0

有沒有關於如何在ASP.NET中使用它的示例? – RKh 2013-05-08 18:02:17

1

爲什麼你需要在數據庫中存儲時間差異?你已經有了他們的時區,只需將它們的GMT差值加到DateTime.UtcNow即可。

0

如何獲取函數DateTime.Now在你的登錄頁面?你用這個作爲某種時間戳嗎?

+0

但是有些用戶在他們的操作系統上使用不同的時區。此外,它是一個Web應用程序,應用程序託管在US服務器上,但客戶端是菲律賓的。 – RKh 2013-05-08 17:57:31

+0

要在用戶瀏覽器中獲得當前時間,您可以使用Javascript Date()對象,將其保存在隱藏文本字段中並將其與您的登錄表單一起提交 – Marcianin 2013-05-08 18:07:31

+0

我們現在使用相同的方法,但如果操作系統使用不同的時間區域,它將選擇這個時間而不是位置時間。 – RKh 2013-05-08 18:09:53

相關問題