2013-01-17 70 views
1

我正在開發一個關於運動的Q/A論壇。我如何獲得登錄用戶的時區,以便根據該時區發佈他/她的查詢。目前我正在這樣做根據用戶的時區獲取時間 - PHP

Javascript 
var current_date = new Date(); var clock=current_date.getTimezoneOffset()/60; gmt= -1 * clock; 
$.post("receive.php",{gmt:gmt}); 

Receive.php 
<?php // set timezone 
if(isset($_POST['gmt'])) 
{ 
    $_SESSION['timezone']=$_POST['gmt']*60*60;   
} 
?> 

但它不適用於那些有Javascript的用戶。有更好的解決方案嗎?

+1

讓用戶在其選項/設置/配置中設置時區。否則,請使用默認值(服務器,訪問者最熱門的區域)。 – MECU

+0

同意@MECU:如果你不能從Javascript獲得它,那麼唯一可用的答案是讓用戶手動輸入它或爲他們選擇一個默認值(如果你用時區代碼向他們顯示時間,它會即使它不是當地的時區也是有意義的)。但誠實地說,你最後一次看到JavaScript禁用的瀏覽器?你是否依賴於其他功能的JS?如果是這樣,那麼這個問題無論如何都是無稽之談另外,如何確保用戶的時區設置正確? – SDC

回答

2

一種解決方案可能是:
1.Retrieve用戶

$ipaddress = $_SERVER["REMOTE_ADDR"]; 

2.Analyse使用geolocation ip database IP地址的IP。
3.在此位置獲取時區

+0

夥計們,我只是在FB上測試過。他們能夠根據我當前的當地時間發佈信息。他們是否使用地理定位ip數據庫。 – sanchitkhanna26

+0

嘗試使用VPN檢查或更改計算機的時鐘以進行檢查。 – poiuytrez

+0

他們仍然發佈正確的時間,而不是我電腦時鐘的更改時間。 – sanchitkhanna26