Что считает таймер
Обратный отсчет до даты показывает, сколько времени осталось до начала выбранной календарной даты. Целевой момент строится как 00:00 выбранного дня в локальном времени браузера, а результат обновляется каждую секунду. Если дата уже наступила, таймер переключается на состояние после даты и показывает, сколько времени прошло с ее начала.
Входные данные
- выбранная календарная дата;
- текущий момент, который берется из локального времени браузера;
- локальный часовой пояс браузера, который показывается в деталях результата.
Метод расчета
Сначала выбранная дата превращается в локальный момент начала дня:
$$ T_{\text{target}}=\text{startOfDay}(d_{\text{selected}}) $$
Разница во времени считается между целевым моментом и текущим временем:
$$ \Delta t=T_{\text{target}}-T_{\text{now}} $$
Для вывода используется абсолютное число секунд:
$$ S=\left\lfloor\frac{\left|\Delta t\right|}{1000}\right\rfloor $$
Затем секунды раскладываются на дни, часы, минуты и секунды:
$$ S=d\cdot86400+h\cdot3600+m\cdot60+s $$
Что можно получить
- живой обратный отсчет до начала выбранной даты;
- дни, часы, минуты и секунды в одном результате;
- состояние после наступления выбранной даты;
- текущий локальный момент и целевой момент;
- локальный часовой пояс браузера;
- готовую сводку расчета.
Ограничения
Страница не дает выбрать точное время события, часовой пояс вручную, несколько событий, напоминания, звук, виджет или публичную ссылку на таймер. Целевой момент всегда равен 00:00 выбранной даты в локальном времени браузера. Для чистого расчета календарных дней без часов и секунд лучше использовать калькулятор дней до события.