- Модуль: 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;
}