ToolActToolAct

Онлайн секундомер

Бесплатный онлайн секундомер с миллисекундной точностью и записью кругов

00:00:00.000

Что такое Онлайн Секундомер?

Онлайн секундомер — это точный инструмент измерения времени, который отсчитывает прошедшее время от нуля вверх, обычно с миллисекундным разрешением. В отличие от таймера обратного отсчёта, секундомер отвечает на вопрос «сколько времени это заняло?», что делает его идеальным для спортивных тренировок, лабораторных экспериментов, презентаций, приготовления пищи, программирования и любых задач, где нужно отслеживать длительность, а не соблюдать фиксированный конечный срок. Инструмент полностью работает в браузере, используя requestAnimationFrame для плавного обновления дисплея и performance.now() для монотонного измерения времени, поэтому он остаётся точным даже при корректировке системных часов. Запись кругов позволяет фиксировать промежуточные результаты с выделением лучшего/худшего круга, и все данные остаются локальными — ничего не загружается.

Как использовать

Быстрый старт

  1. Нажмите «Старт» для начала — на дисплее отображается часы:минуты:секунды.миллисекунды
  2. Нажмите «Круг» во время работы, чтобы записать промежуточное время
  3. Нажмите «Пауза», чтобы зафиксировать дисплей, затем «Старт» для продолжения
  4. Нажмите «Сброс», чтобы очистить таймер и все записи кругов

Советы

  • Секундомер использует requestAnimationFrame для обновления дисплея ~16 мс и performance.now() для точного измерения.
  • Держите вкладку видимой для наиболее плавного отображения. Фоновые вкладки могут ограничивать кадры анимации.
  • Время кругов выделяется цветом: зелёный — самый быстрый круг, красный — самый медленный.

Сценарии использования

Спортивные и фитнес-тренировкиЗамеряйте время кругов бега, интервалов плавания, велосипедных отрезков или круговых тренировок. Записывайте каждый круг, чтобы видеть, какие были быстрее или медленнее, помогая контролировать темп.
Лабораторные эксперименты и сбор данныхИзмеряйте время реакции, хронометрируйте химические процессы или записывайте интервалы наблюдения. Миллисекундный дисплей даёт точность, необходимую для научного хронометража без специального оборудования.
Презентации и публичные выступленияЗамеряйте время речи, презентации или репетиции питча. Используйте круги для хронометража отдельных разделов или слайдов, чтобы понять, какие части заняли больше всего времени, и скорректировать темп.
Приготовление пищи и выпечкаОтслеживайте, сколько времени на самом деле занимает каждый шаг — от подготовки до подачи. Запись кругов позволяет измерять отдельные этапы, пока общие часы продолжают идти.
Программирование и продуктивностьЗамеряйте сессии кодирования, отладку или рабочие блоки в стиле Pomodoro. Секундомер продолжает идти, пока вы его не остановите, давая честную оценку того, сколько времени действительно заняла задача.

Технический принцип

Движок секундомера полностью избегает подверженного дрейфу шаблона setInterval. Вместо этого он использует requestAnimationFrame (rAF) для обновления дисплея и performance.now() как авторитетный источник времени. Когда пользователь нажимает «Старт», движок записывает текущую метку времени performance.now() как startTime. На каждом кадре анимации он вычисляет elapsed = accumulated + (performance.now() - startTime), где accumulated хранит общее прошедшее время до последней паузы. Эта двухпеременная модель (накопленное время + дельта выполнения) корректно обрабатывает циклы паузы/возобновления без потери субмиллисекундной точности. performance.now() выбран вместо Date.now(), потому что он монотонен — он никогда не откатывается назад из-за коррекций NTP, ручного изменения часов или перехода на летнее время. Он также обеспечивает субмиллисекундное разрешение (обычно 5 мкс в современных браузерах), что делает его правильными часами для краткосрочного высокоточного хронометража. Обратный вызов rAF ограничен частотой обновления дисплея (обычно 60 Гц = ~16,67 мс, до 120 Гц на дисплеях с высокой частотой обновления), поэтому визуальное обновление плавное, но не является эталонным значением — фактическое прошедшее время берётся из вычисления performance.now(), которое постоянно корректно. Запись кругов фиксирует текущее elapsedMs в момент нажатия кнопки «Круг», вычисляя разницу с общим временем предыдущего круга. Лучшие и худшие круги определяются сравнением всех разниц кругов с помощью Math.min/Math.max, и дисплей выделяет их зелёным и красным стилями соответственно. Всё состояние хранится в хуках React useState внутри клиентского компонента, и никакие данные не сохраняются и не передаются — секундомер эфемерен по своей природе, полностью сбрасываясь при закрытии страницы или нажатии кнопки «Сброс».

  • performance.now() предоставляет монотонные метки времени с субмиллисекундной точностью — невосприимчив к изменениям системных часов.
  • requestAnimationFrame управляет обновлением дисплея на частоте обновления (60–120 Гц) для плавного рендеринга.
  • Модель накопленного времени + дельты выполнения обрабатывает паузу/возобновление без потери точности.
  • Разницы кругов вычисляются как currentTotal - previousTotal для точного промежуточного хронометража.
  • Все вычисления выполняются локально в браузере; никаких обращений к серверу или загрузки данных.

Примеры

Беговая дорожка — Круги по 400 м

Круг 1 -> 01:12.450  (+01:12.450)
Круг 2 -> 02:26.180  (+01:13.730)
Круг 3 -> 03:38.910  (+01:12.730)
Круг 4 -> 04:50.320  (+01:11.410  лучший)

Репетиция презентации — хронометраж слайдов

Введение     -> 00:45.200  (+00:45.200)
Проблема     -> 02:10.850  (+01:25.650)
Решение      -> 04:35.120  (+02:24.270)
Демо         -> 07:10.430  (+02:35.310)
Заключение   -> 08:25.610  (+01:15.180)
Итого: 8 мин 25 сек — в пределах цели в 10 мин

HIIT тренировка — отслеживание интервалов

Раунд 1 -> 00:30.150  (+00:30.150)
Отдых 1 -> 00:45.320  (+00:15.170)
Раунд 2 -> 01:15.480  (+00:30.160)
Отдых 2 -> 01:30.510  (+00:15.030)
Раунд 3 -> 02:00.670  (+00:30.160  худший)
Раунд 4 -> 02:30.520  (+00:29.850  лучший)

Часто задаваемые вопросы

Насколько точен секундомер?

Секундомер использует performance.now(), который обеспечивает субмиллисекундную точность (обычно гранулярность 5 микросекунд). Дисплей обновляется примерно 60 раз в секунду через requestAnimationFrame, поэтому визуальное обновление находится в пределах 16 мс от истинного значения. Для большинства практических целей — спорт, приготовление пищи, презентации — этого более чем достаточно.

Продолжает ли секундомер работать при переключении вкладок?

Да. Прошедшее время вычисляется из абсолютной метки времени performance.now(), а не из накопительных тиков. При возвращении на вкладку дисплей немедленно показывает правильное прошедшее время. Однако requestAnimationFrame ограничивается в фоновых вкладках, поэтому визуальное обновление может приостанавливаться до вашего возвращения.

Что происходит, когда компьютер переходит в спящий режим?

performance.now() монотонен, но не продвигается, пока система приостановлена. При пробуждении компьютера дисплей секундомера покажет прошедшее время так, как будто система никогда не спала — он НЕ будет включать продолжительность сна. Это правильное поведение для большинства случаев использования хронометража.

Могу ли я экспортировать или сохранить время кругов?

Секундомер в настоящее время не поддерживает сохранение или экспорт данных кругов. Все записи кругов хранятся в памяти и очищаются при сбросе таймера или закрытии страницы. Для постоянной записи скопируйте отображаемое время вручную или используйте специальный фитнес-трекер.

Почему используется performance.now() вместо Date.now()?

performance.now() монотонен — он никогда не идёт назад. Date.now() может прыгать на секунды или минуты при корректировке системных часов (синхронизация NTP, ручное изменение, переход на летнее время). Для краткосрочного хронометража performance.now() — правильный выбор. Он также предлагает субмиллисекундное разрешение, в отличие от миллисекундного разрешения Date.now().

Загружаются ли какие-либо данные на сервер?

Нет. Секундомер полностью работает в вашем браузере. Никакие данные хронометража, записи кругов или информация об использовании не отправляются на сервер. Страница работает офлайн после загрузки.

В чём разница между секундомером и таймером обратного отсчёта?

Секундомер измеряет прошедшее время вверх от нуля — он отвечает «сколько времени это заняло?». Таймер обратного отсчёта начинает с установленной длительности и считает вниз до нуля — он отвечает «сколько времени осталось?». Этот инструмент — секундомер; для функциональности обратного отсчёта используйте инструмент «Таймер обратного отсчёта».

Связанные инструменты

Таймер обратного отсчета

Бесплатный онлайн-таймер обратного отсчёта: задайте целевое время, добавьте напоминание и следите за отсчётом с точностью до секунды для любых событий.

Таймер Помодоро

Бесплатный онлайн-таймер Помодоро: 25 минут концентрации и 5 минут отдыха. Помогает удерживать фокус и формировать полезные рабочие привычки.

Инструмент преобразования меток времени

Бесплатный онлайн-конвертер Unix-меток времени в дату и обратно. Поддержка секунд, миллисекунд и нескольких часовых поясов — удобно для отладки и логов.

Калькулятор Разницы Дат

Бесплатный онлайн калькулятор разницы дат. Вычисляет дни, недели, месяцы, годы между двумя датами. Точные расчёты с отображением часов, минут, секунд.

Перекидные часы

Бесплатные онлайн перекидные часы с временем в реальном времени, режимом 12/24 часа, секундами и полноэкранным режимом. Идеально для рабочего стола.

Табло счёта

Бесплатный онлайн-инструмент табло счёта, добавление игроков, настройка очков и рейтинг в реальном времени. Идеально для настольных игр, вечеринок и спортивных соревнований.