Перекидные часы
Цифровые перекидные часы с полноэкранным режимом, форматом 12/24 часа и секундами.
Что такое перекидные часы?
Этот инструмент идеально воссоздаёт эффект классических перекидных часов с реалистичной анимацией переворота при каждом изменении цифры. Он работает прямо в браузере без загрузок, с полноэкранным режимом, переключением формата 12/24 часа и опциональным отображением секунд.
Идеально подходит для: настольных часов, украшения офиса, фона для стриминга, таймера презентаций, техники Pomodoro, больших экранов и многого другого. Все вычисления времени производятся локально, защищая вашу конфиденциальность.
Как использовать
Как использовать
- Часы автоматически отображают текущее время и обновляются в реальном времени
- Нажмите кнопку «12H/24H» для переключения формата времени
- Нажмите кнопку «Секунды/Без секунд» для включения или отключения отображения секунд
- Нажмите кнопку «Полный экран» для перехода в полноэкранный режим
- Настройки сохраняются автоматически и восстанавливаются при следующем посещении
Советы
- Используйте полноэкранный режим на проекторе, настенном дисплее или запасном планшете, если часы должны быть видны из другого конца комнаты.
- Отключите спящий режим системы или затемнение экрана, если часы должны оставаться видимыми во время встреч, занятий или мероприятий.
- Выбирайте 24-часовой формат времени для расписаний, используемых в разных регионах, и показывайте секунды только когда точное время действительно важно.
Применение
Технический принцип
Время берётся из Date.now() в миллисекундах с начала Unix-эпохи, но наивный setInterval(fn, 1000) даёт дрейф, потому что таймеры срабатывают по принципу «best-effort» и накапливают отклонение. Инструмент вместо этого планирует следующий тик, вычисляя 1000 - (Date.now() % 1000), чтобы граница попадала на реальную секунду, и использует requestAnimationFrame для анимации переворота, так что анимация автоматически ставится на паузу, когда вкладка теряет фокус или монитор уходит в спящий режим. Page Visibility API (document.visibilityState) повторно синхронизирует отображаемые цифры при visibilitychange, избегая устаревшего значения, когда пользователь возвращается через несколько минут.
Форматирование отображения читает локаль браузера через Intl.DateTimeFormat с опцией hourCycle ('h23' для 24-часового, 'h12' для 12-часового с AM/PM). Переходы летнего/зимнего времени обрабатываются неявно, поскольку методы Date, такие как getHours(), уже возвращают локальное время с учётом смещения, и часы перескакивают с 02:00 на 03:00 весной и показывают 01:00 дважды осенью без дополнительной логики.
- 3D-переворот: CSS transform: rotateX(-180deg) на абсолютном слое, родительский perspective: 600px, backface-visibility: hidden для подавления зеркальной задней грани
- Композиция на GPU: will-change: transform перемещает переворачивающийся элемент на собственный слой, и переходы композируются, а не перерисовываются
- Бездрейфовый тик: задержка setTimeout вычисляется как 1000 - (Date.now() % 1000), чтобы каждый тик попадал на реальную границу секунды вместо накопления отклонения таймера
- Тайминг анимации: requestAnimationFrame управляет переходом от 0deg до -180deg, браузер автоматически замедляет его в фоновых вкладках
- Восстановление в фоне: Page Visibility API слушает visibilitychange и перечитывает Date.now(), чтобы цифры перескакивали к правильному значению при возврате фокуса на вкладку
- Локаль и формат часа: Intl.DateTimeFormat с hourCycle 'h23' или 'h12' выбирает 24-часовой или 12-часовой AM/PM формат из системной локали пользователя
- Полноэкранный режим: Element.requestFullscreen() и document.exitFullscreen() управляют режимом настенных часов, Esc — стандартная клавиша выхода
Примеры
Использование на рабочем столе
Измените размер окна браузера так, чтобы поместить часы в угол рабочего стола в качестве постоянных часов.Отображение на большом экране
Подключите проектор или большой дисплей, нажмите F11 для полноэкранного режима, показывайте в переговорных или на мероприятиях.Фон для прямой трансляции
Добавьте источник браузера в OBS с URL флип-часов в качестве фона трансляции.Часто задаваемые вопросы
Какой часовой пояс использует часы?
Локальный часовой пояс вашего устройства, заданный в ОС. Чтобы показывать другой пояс, воспользуйтесь специальным инструментом мирового времени. Часы опираются на системное время, поэтому VPN и подмена часового пояса в браузере на них не влияют.
Можно ли переключаться между 12- и 24-часовым форматом?
Да, переключатель есть в настройках. 12-часовой формат показывает AM/PM, 24-часовой — числа от 00 до 23 без AM/PM. Выберите подходящий вариант; в некоторых сборках формат по умолчанию совпадает с локалью ОС.
Почему секундная стрелка иногда перескакивает больше чем на секунду?
Это троттлинг фоновых вкладок. Когда вы переключаетесь, браузер замедляет частоту обновления; при возврате часы догоняют время скачком. Чтобы анимация была плавной, держите вкладку активной. Если рывки видны и при активной вкладке — перегружен процессор, проверьте, что ещё запущено.
Влияет ли анимация переворота на производительность?
CSS-трансформации ускоряются GPU и почти ничего не стоят на современных устройствах. На старых ноутбуках и телефонах раз в секунду может проскальзывать лёгкое подёргивание. Если вам нужен статичный циферблат — отключите анимацию переворота в настройках.
Можно ли оставить часы на полном экране на всю ночь?
Да — они и задумывались как настольные или прикроватные часы в полноэкранном режиме. Современные ОС всё равно гасят или усыпляют экран, пока вы не запретите это (выберите «никогда не засыпать» в настройках экрана или используйте утилиту вроде NoSleep). Ноутбук подключите к сети — режимы экономии заряда приостанавливают вкладку.
Будут ли часы точны спустя несколько часов?
Да. Часы опираются на системное время, которое на сетевых устройствах синхронизируется через NTP. Дрейф за сутки на современной ОС обычно меньше секунды.
Что-нибудь загружается в сеть?
Нет. Часы читают время с вашего устройства. Ничего не логируется и не передаётся.