• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/rest/controllers/task.php
  • Класс: BitrixTasksRestControllersTask
  • Вызов: Task::formatDateFieldsForOutput
private function formatDateFieldsForOutput(&$row): void
{
	static $dateFields;

	if (!$dateFields)
	{
		$dateFields = $this->getDateFields($this->isUfExist(array_keys($row)));
	}

	$localOffset = (new DateTime())->getOffset();
	$userOffset =  CTimeZone::GetOffset(null, true);
	$offset = $localOffset + $userOffset;
	$newOffset = ($offset >= 0 ? '+' : '').UI::formatTimeAmount($offset, 'HH:MI');

	foreach ($dateFields as $fieldName => $fieldData)
	{
		if (
			isset($row[$fieldName])
			&& ($field = $row[$fieldName])
		)
		{
			if (is_array($field))
			{
				foreach ($field as $key => $value)
				{
					if ($date = new DateTime($value))
					{
						$row[$fieldName][$key] = mb_substr($date->format('c'), 0, -6).$newOffset;
					}
				}
			}
			else if ($date = new DateTime($field))
			{
				$row[$fieldName] = mb_substr($date->format('c'), 0, -6).$newOffset;
			}
		}
	}
}