2014-03-27 24 views
-1

我們如何檢測用戶的本地時間? 例如,如何通過使用PHP獲取客戶端本地時區而不是服務器時區?

我的服務器位於美國,日期時間爲2014年3月27日01:10:10。 (格林威治標準時間) 我使用我的電腦訪問我的網站從柬埔寨和日期時間是27-Mar-2014 08:10:10。 (GMT + 7)。

當我訪問我在美國的網站時,如何獲得我的PC日期時間?

請幫忙!

+0

你不能。您可以爲用戶提供指定他/她的本地時區的方法,並將其存儲在用戶配置文件中,但AFAIK無法單獨從瀏覽器確定客戶端的時區。 –

+1

另一方面,在美國的任何時候當然不是格林威治標準時間,但有一個負偏移。如果您的服務器實際上報告它的本地時間爲GMT(+/- 0),那麼它的配置不正確。 –

+0

嗨!事實上,在我將datetime插入到數據庫之前,我將它轉換爲UTC或GMT0。 –

回答

0

你將不得不使用JavaScript將它發送到服務器(運行在客戶端上,並且可以訪問系統時間)

0

此代碼工作正常,我

echo <<<EOE 
    <script type="text/javascript"> 
    if (navigator.cookieEnabled) 
     document.cookie = "tzo="+ (- new Date().getTimezoneOffset()); 
    </script> 
EOE; 
    if (!isset($_COOKIE['tzo'])) { 
    echo <<<EOE 
     <script type="text/javascript"> 
     if (navigator.cookieEnabled) document.reload(); 
     else alert("Cookies must be enabled!"); 
     </script> 
EOE; 
    die(); 
    } 
    $ts = new DateTime('now', new DateTimeZone('GMT')); 
    $ts->add(DateInterval::createFromDateString($_COOKIE['tzo'].' minutes')); 
相關問題