• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/util/scheduler.php
  • Класс: BitrixTasksUtilis
  • Вызов: is::convertDurationToUnits
static function convertDurationToUnits($duration = 0, $preferredUnits = CTasks::TIME_UNIT_TYPE_HOUR)
{
	$duration = intval($duration);
	$result = array(
		'TYPE' => $preferredUnits,
		'VALUE' => 0
	);

	if($duration)
	{
		// $duration comes in seconds
		// cast to minutes
		$mDuration = round($duration / 60, 0);

		if($preferredUnits == CTasks::TIME_UNIT_TYPE_MINUTE)
		{
			$result['VALUE'] = $mDuration;
		}
		else
		{
			if($preferredUnits == CTasks::TIME_UNIT_TYPE_HOUR)
			{
				$hDuration = $mDuration / 60;

				if(fmod($hDuration, 1) > 0)
				{
					$result['VALUE'] = $mDuration;
					$result['TYPE'] = CTasks::TIME_UNIT_TYPE_MINUTE;
				}
				else
				{
					$result['VALUE'] = $hDuration;
				}
			}
			elseif($preferredUnits == CTasks::TIME_UNIT_TYPE_DAY)
			{
				$dDuration = $mDuration / (24*60);

				if(fmod($dDuration, 1) > 0)
				{
					$hDuration = $mDuration / 60;

					if(fmod($hDuration, 1) > 0)
					{
						$result['VALUE'] = $mDuration;
						$result['TYPE'] = CTasks::TIME_UNIT_TYPE_MINUTE;
					}
					else
					{
						$result['VALUE'] = $hDuration;
						$result['TYPE'] = CTasks::TIME_UNIT_TYPE_HOUR;
					}
				}
				else
				{
					$result['VALUE'] = $dDuration;
				}
			}
		}
	}

	return $result;
}