• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_mail.php
  • Класс: CIMMail
  • Вызов: CIMMail::GetUserOffset
static function GetUserOffset($params)
{
	$userOffset = 0;
	$localOffset = 0;

	if (!CTimeZone::Enabled())
		return 0;

	try //possible DateTimeZone incorrect timezone
	{
		$localTime = new DateTime();
		$localOffset = $localTime->getOffset();

		$autoTimeZone = trim($params["AUTO_TIME_ZONE"]);
		$userZone = $params["TIME_ZONE"];
		$factOffset = $params["TIME_ZONE_OFFSET"];

		if($autoTimeZone == "N")
		{
			$userTime = ($userZone <> ""? new DateTime(null, new DateTimeZone($userZone)) : $localTime);
			$userOffset = $userTime->getOffset();
		}
		else
		{
			if(CTimeZone::IsAutoTimeZone($autoTimeZone))
			{
				return intval($factOffset);
			}
			else
			{
				$serverZone = COption::GetOptionString("main", "default_time_zone", "");
				$serverTime = ($serverZone <> ""? new DateTime(null, new DateTimeZone($serverZone)) : $localTime);
				$userOffset = $serverTime->getOffset();
			}
		}
	}
	catch(Exception $e)
	{
		return 0;
	}
	return intval($userOffset) - intval($localOffset);
}