---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.3
alternate:
  - https://divkit.tech/docs/en/concepts/timer.md
  - https://divkit.tech/docs/ru/concepts/timer.md
---
> **Documentation Index:** Fetch the complete configuration index at https://divkit.tech/docs/ru/llms.txt

# Таймеры

Для подсчета времени используйте [таймеры](https://divkit.tech/docs/ru/concepts/divs/2/div-timer.md). Они умеют считать время, запускать действия через заданные интервалы или по окончании работы таймера.

## Свойства таймера

- `id` — идентификатор таймера. Обязательное поле.
- `duration` — время работы таймера в миллисекундах. Если равно `0` или не задано, таймер будет работать бесконечно, до события остановки.
- `tick_interval` — интервал между отсчетами («тиками») таймера. Возможно, фактическое время «тика» будет отличаться от заданого на несколько миллисекунд: мы специально решили хранить в переменной реальное время отсчета, не округляя его вверх или вниз.
- `value_variable` — переменная, в которой хранится текущее значение таймера. Обновляется каждый «тик». Отражает фактическое время, поэтому не всегда может быть кратно значению `tick_interval`, а может включать миллисекунды после последнего «тика».
- `tick_actions` — массив [действий](https://divkit.tech/docs/ru/concepts/divs/2/div-action.md), которые будут выполняться на каждый «тик» таймера.
- `end_actions` — массив [действий](https://divkit.tech/docs/ru/concepts/divs/2/div-action.md), которые выполнятся при окончании таймера.

 Таймеры объявляются в объекте `card`:

```json translate=no
{
  "templates": {...},
  "card": {
    "timers": [
      {
        "id": "ticker",
        "duration": "@{timer_duration}",
        "tick_interval": "@{timer_interval}",
        "value_variable": "timer_value",
        "tick_actions": [],
        "end_actions": []
      }
    ],
    ...
  }
}
```
## Управление

Для управления таймером из верстки можно использовать [действия](https://divkit.tech/docs/ru/concepts/interaction.md):

#|
||
**Действие**
|
**Описание**
||
||
`div-action://timer?id=timer_id&action=start`
|
Запустить таймер.
||
||
`div-action://timer?id=timer_id&action=stop`
|
Остановить таймер и выполнить `end_actions`.
||
||
`div-action://timer?id=timer_id&action=pause`
|
Приостановить отсчет (пауза).
||
||
`div-action://timer?id=timer_id&action=resume`
|
Продолжить отсчет.
||
||
`div-action://timer?id=timer_id&action=cancel`
|
Остановить таймер. Значение `value_variable`при этом не меняется, остается последнее сохраненное.
||
||
`div-action://timer?id=timer_id&action=reset`
|
Перезапустить таймер (последовательное выполнение `cancel` и `start`).
||
|#

{% cut "Посмотреть интерактивный пример" %}


<iframe src="https://yastatic.net/s3/home/divkit/docs/1.0.8/index.html?url=https://yastatic.net/s3/home/divkit/doc_samples/common/timer_1.json" width="700" height="500" frameborder="1"></iframe>


{% endcut %}

<!-- source: ru/_includes/index/troubleshooting.md -->
## Узнать больше {#troubleshooting}

Вы можете обсуждать интересующие вас темы в сообществе пользователей DivKit в Telegram: [https://t.me/divkit_community_ru](https://t.me/divkit_community_ru).



[Репозиторий DivKit](https://github.com/divkit/divkit)




<!-- endsource: ru/_includes/index/troubleshooting.md -->
