• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_event.php
  • Класс: CCalendarEvent
  • Вызов: CCalendarEvent::calculateUserOffset
static function calculateUserOffset($userId, $event = [])
{
	if (($event['DT_SKIP_TIME'] ?? null) === 'N')
	{
		$currentUserTimezone = CCalendar::GetUserTimezoneName($userId);

		$fromTs = CCalendar::Timestamp($event['DATE_FROM']);
		$toTs = $fromTs + $event['DT_LENGTH'];

		$event['~USER_OFFSET_FROM'] = CCalendar::GetTimezoneOffset($event['TZ_FROM'], $fromTs)
			- CCalendar::GetTimezoneOffset($currentUserTimezone, $fromTs);

		$event['~USER_OFFSET_TO'] = CCalendar::GetTimezoneOffset($event['TZ_TO'], $toTs)
			- CCalendar::GetTimezoneOffset($currentUserTimezone, $toTs);
	}
	else
	{
		$event['~USER_OFFSET_FROM'] = 0;
		$event['~USER_OFFSET_TO'] = 0;
	}

	return $event;
}