public function actionSetTimeZone() { $do = \Yii::app()->getRequest()->getParam('do'); if ('set' == $do) { $timezone = \Yii::app()->getRequest()->getParam('timezone'); if (strlen($timezone) && in_array($timezone, timezone_identifiers_list())) { \Yii::app()->session->add("timezone", $timezone); echo json_encode(['result' => 'success']); } else { echo json_encode(['result' => 'error']); } } else { if ('list' == $do) { $arr = \User::getTimeZones(); echo json_encode(['result' => 'success', 'list' => $arr]); } else { if ('offset' == $do) { $timezone = \Yii::app()->getRequest()->getParam('timezone'); if (strlen($timezone) && in_array($timezone, timezone_identifiers_list())) { $offset = \User::calcOffsetTimeZone($timezone); echo json_encode(['result' => 'success', 'offset' => $offset]); } else { echo json_encode(['result' => 'error']); } } } } }