-1
我們如何檢測用戶的本地時間? 例如,如何通過使用PHP獲取客戶端本地時區而不是服務器時區?
我的服務器位於美國,日期時間爲2014年3月27日01:10:10。 (格林威治標準時間) 我使用我的電腦訪問我的網站從柬埔寨和日期時間是27-Mar-2014 08:10:10。 (GMT + 7)。
當我訪問我在美國的網站時,如何獲得我的PC日期時間?
請幫忙!
我們如何檢測用戶的本地時間? 例如,如何通過使用PHP獲取客戶端本地時區而不是服務器時區?
我的服務器位於美國,日期時間爲2014年3月27日01:10:10。 (格林威治標準時間) 我使用我的電腦訪問我的網站從柬埔寨和日期時間是27-Mar-2014 08:10:10。 (GMT + 7)。
當我訪問我在美國的網站時,如何獲得我的PC日期時間?
請幫忙!
你將不得不使用JavaScript將它發送到服務器(運行在客戶端上,並且可以訪問系統時間)
此代碼工作正常,我
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'));
你不能。您可以爲用戶提供指定他/她的本地時區的方法,並將其存儲在用戶配置文件中,但AFAIK無法單獨從瀏覽器確定客戶端的時區。 –
另一方面,在美國的任何時候當然不是格林威治標準時間,但有一個負偏移。如果您的服務器實際上報告它的本地時間爲GMT(+/- 0),那麼它的配置不正確。 –
嗨!事實上,在我將datetime插入到數據庫之前,我將它轉換爲UTC或GMT0。 –