Таймер отсчета
Это часть блока Обложка
на странице московского фестиваля.
Пользователь может задать:
- Текст заголовка
- Дату дедлайна
- Время дедлайна
Таймер показывает оставшееся время до даты и времени дедлайна. Если эта дата в прошлом - показывается 00 дней 00 часов 00 минут 00 секунл
.
Логика
Пользователь CMS выбирает в поле Дата
11 ноября 2023. Значением становится 11 ноября 2023 00:00 по UTC+0
. Не важно, в каком часовом поясе находится пользователь CMS, он всегда выбирает UTC+0 дату.
Юзер заходит на публичный сайт, сегодня у него 10 ноября 2023 12:00 UTC+3 (Москва)
.
Пришедшая из CMS дата 11 ноября 2023 00:00 по UTC+0
конвертируется в 11 ноября 2023 00:00 по UTC+3
. Или если юзер в Красноярске, она сконвертируется в 11 ноября 2023 00:00 по UTC+7
, и так далее.
Таким образом, юзер увидит, что осталось 0д 12ч
. То есть неважно, в каком часовом поясе сидит пользователь, он всегда будет видеть отсчет до 11 ноября 00:00 в своем часовом поясе.
Время
Время просто позволяет отсчитывать не до 00:00
даты дедлайна, а до конкретного времени. Трюк с подстраиванием под таймзону пользователя, описанный выше, сохраняется.
Если время не указано - временем считается 00:00
.
Если не указана дата, датой дедлайна считается Date.now(), то есть буквально время захода пользователя на страницу.
Если при этом указано время - датой дедлайна считается сегодняшний день и указанное время.