• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/ui/task/deadline.php
  • Класс: Bitrix\Tasks\UI\Task\Deadline
  • Вызов: Deadline::getExpiredTime
private function getExpiredTime(int $timestamp): string
{
	$extensionPrefix = 'TASKS_GRID_TASK_ROW_CONTENT_DEADLINE_STATE_EXPIRED_';
	$extensions = [
		'YEAR' => [
			'value' => 31536000,
			'text' => Loc::getMessage($extensionPrefix.'YEAR'),
		],
		'MONTH' => [
			'value' => 2592000,
			'text' => Loc::getMessage($extensionPrefix.'MONTH'),
		],
		'WEEK' => [
			'value' => 604800,
			'text' => Loc::getMessage($extensionPrefix.'WEEK'),
		],
		'DAY' => [
			'value' => 86400,
			'text' => Loc::getMessage($extensionPrefix.'DAY'),
		],
		'HOUR' => [
			'value' => 3600,
			'text' => Loc::getMessage($extensionPrefix.'HOUR'),
		],
		'MINUTE' => [
			'value' => 60,
			'text' => Loc::getMessage($extensionPrefix.'MINUTE'),
		],
	];

	$today = (new DateTime())->getTimestamp() + \CTimeZone::GetOffset();
	$delta = $today - $timestamp;
	if ($delta < 0)
	{
		return '';
	}

	$expiredTime = Loc::getMessagePlural($extensionPrefix . 'MINUTE', 1, [
		'#TIME#' => 1,
	]);
	foreach ($extensions as $key => $extension)
	{
		$value = (int)floor($delta / $extension['value']);
		if ($value >= 1)
		{
			$expiredTime = Loc::getMessagePlural($extensionPrefix . $key, $value, [
				'#TIME#' => $value,
			]);
			break;
		}
		$delta -= $value * $extension['value'];
	}

	return $expiredTime;
}