• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/sitebutton/worktime.php
  • Класс: Bitrix\Crm\SiteButton\WorkTime
  • Вызов: WorkTime::convertToJS
static function convertToJS($workTime = array())
{
	static $timeZoneOffset = null;
	if ($timeZoneOffset === null)
	{
		$date = new \DateTime();
		if (!empty($workTime['TIME_ZONE']))
		{
			$dateTimeZone = new \DateTimeZone($workTime['TIME_ZONE']);
		}
		else
		{
			$dateTimeZone = $date->getTimezone();
		}
		$timeZoneOffset = $dateTimeZone->getOffset($date);
	}

	$holidays = count($workTime['HOLIDAYS']) > 0 ? $workTime['HOLIDAYS'] : null;
	$dayOffCodes = count($workTime['DAY_OFF']) > 0 ? $workTime['DAY_OFF'] : null;
	if ($dayOffCodes)
	{
		$days = array('SU' => 0, 'MO' => 1, 'TU' => 2, 'WE' => 3, 'TH' => 4, 'FR' => 5, 'SA' => 6);
		$dayOff = array();
		foreach ($dayOffCodes as $dayOffCode)
		{
			$dayOff[] = $days[$dayOffCode];
		}
	}
	else
	{
		$dayOff = null;
	}

	return array(
		'timeZoneOffset' => $timeZoneOffset / 60,
		'timeFrom' => (float) $workTime['TIME_FROM'],
		'timeTo' => (float) $workTime['TIME_TO'],
		'holidays' => $holidays,
		'dayOff' => $dayOff,
		'actionRule' => $workTime['ACTION_RULE'],
		'actionText' => $workTime['ACTION_TEXT'],
	);
}