Урок 12.7 · Интерфейсы и сайты с нуля · Модуль 12. Праздник на экране · По подписке
Цель урока: Посчитать, сколько осталось до даты, показать это в понятном виде и обновлять раз в секунду, не забыв остановить таймер.
Нужно знать заранее: Уроки 4.2 и 12.1
Объяснение
Зачем это нужно:
Отсчёт «до праздника», «до конца акции», «доставка через 2 дня 04:12:07» — самый частый блок с датой в интерфейсах. И самый частый источник мелких ошибок: то время уходит в минус, то «1 день» написано как «1 дней», то таймер продолжает тикать, когда блок уже удалён со страницы.
Здесь впервые появляются дата, разница между датами и таймер — три вещи, без которых не обходится ни один интерфейс со временем.
Как это работает:
Дата в JavaScript — это число миллисекунд, прошедших с 1 января 1970 года. Date.now() возвращает «сейчас» таким числом, а new Date('2027-01-01T00:00:00') создаёт дату праздника.
Разница двух чисел — сколько миллисекунд осталось. Дальше раскладываем остатками: секунды — делим на 1000; дни — Math.floor(всего / 86400); часы — Math.floor((всего % 86400) / 3600); минуты — Math.floor((всего % 3600) / 60); секунды — всего % 60. Остаток (%) — это «что осталось после целых суток».
Двузначный вид: padStart(2, '0') дописывает ноль слева, поэтому 4 часа выглядят как 04. Без этого «3 дня 4:12:7» читается как ошибка.
Таймер: setInterval(render, 1000) вызывает функцию раз в секунду, clearInterval(timer) останавливает. Без остановки таймер продолжает работать, даже когда блок уже не нужен, — это утечка.
Форма слова считается: 1 день, 2 дня, 5 дней. Иначе в интерфейсе появляется «1 дней», и сразу видно, что блок собрали наспех.
Компьютер без страха — Файлы, браузер, пароли, мошенники, документы и деньги в интернете простыми словами. Бесплатно и без оплаты.
Если уже случилось — Деньги ушли с карты, пропала симка, взломали аккаунт, потерялись документы — порядок действий по шагам и куда звонить.
Какой компьютер нужен — Чек-лист по уровням: для учёбы ничего покупать не нужно, для своего проекта — 16 ГБ и SSD, для работы — 32 ГБ. Плюс нейросети и устаревание железа.
Без кода: ставить задачу — Как объяснить задачу программисту и принять работу. Кода нет ни строчки.
Профессии и языки — Кто такие программисты, зачем столько языков и что делать после курса.
Потренироваться
Практикум: задачи из жизни — Та же команда урока — на работе, дома и в документах. 63 задачи с проверкой вывода и без регистрации.
Игры-тренажёры — Найти ошибку в чужом коде, прочитать, что делает программа, и увидеть, что случится, если нажать клавишу.
Симулятор: от задания до сдачи — Пройти путь целиком: папка, терминал, файл, сохранение, запуск, проверка по критерию приёмки. Два сценария и две системы.
Мастерская экрана — Проверить цвета и раскладку страницы: контраст, шаблоны, конструктор.
Колесо фортуны — Одна прокрутка в день: скидка на подписку или дни доступа.
Словари и юмор
Словарь программиста — Слова из уроков и кода: парсинг, функция, хеш, компиляция.
Словарь руководителя — Слова из работы простыми словами: скоуп, дедлайн, MVP, бэклог.
Корявые задачи — Юмор: как ставят задачи и что из этого получается. С моралью.
Сайт, оплата и помощь
Родителям — Возраст, время на уроки, безопасность в сообществе, деньги и результат — что важно знать до оплаты.