我試圖獲得使用Zend框架的第一個請求用戶的時區。 目前,一旦我獲得時區,我將它存儲到一個$_SESSION
變量。如何得到他們的第一個請求用戶時區(最佳實踐)
這裏是我的動作控制器:
public function init()
{
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('timezone', 'html')->initContext();
}
public function timezoneAction()
{
$_SESSION['tz'] = $this->_getParam('tzName');
}
我知道,其實有沒有辦法通過JavaScript的,因爲阿賈克斯的第一個請求期間訪問該會話變量是一個客戶端腳本和檢測發生在第一次請求之後。也無法通過HTTP標頭獲取用戶的時區。
那麼,如何獲得用戶的時區第一次請求? geo-ip是唯一可用的解決方案嗎?什麼是最佳實踐?謝謝。
這真的取決於你。你實際上可以做到這兩點。如果服務器設置了時區,則可以輸出本地時間並跳過javascript(或者不輸出調用它的調用,或者跳過'class =「datetime」位)。 – timdev 2012-01-03 19:17:39