Stopwatch & Timer
Online stopwatch with lap times and a countdown timer with audible alarm — all in your browser.
Loading Stopwatch & Timer… If nothing happens, please enable JavaScript.
Frequently asked questions
Does the timer keep running if I switch to another tab?
How precise is the timer?
How does the audible alarm work?
Can I record lap times?
What is the Pomodoro Technique and how can this timer help?
What is the maximum countdown duration?
Why does performance.now() have reduced precision in browsers?
Can I use this for timing athletic events like running or swimming?
Does the page need an internet connection once loaded?
How does this compare to a dedicated stopwatch app?
About Stopwatch & Timer
Timekeeping is one of humanity's oldest technological pursuits, and the stopwatch is one of its most refined instruments. A stopwatch measures elapsed time from a defined start point to a defined stop point, with the precision needed to distinguish fractions of a second. Modern digital timers go further, recording intermediate lap times so you can analyse the breakdown of a longer activity into its component intervals. A countdown timer works in the opposite direction: it counts down from a set duration and signals when time has expired. Both instruments are essential in contexts where time is the primary variable being managed, from athletic training to cooking, from software performance testing to the Pomodoro productivity technique.
The range of people who use stopwatches and countdown timers every day is surprisingly broad. Coaches and athletes use lap timing to analyse race splits and training intervals. Cooks and bakers rely on countdown timers to avoid overcooking. Teachers use timers to manage class activities and test durations. Software developers and QA engineers time code execution and user-interface responsiveness. Public speakers rehearse with a countdown to keep within their allotted slot. Knowledge workers practising the Pomodoro Technique alternate 25-minute focused work sessions with 5-minute breaks, both timed precisely. The need to measure or limit a span of time is so universal that every smartphone, smartwatch, and smart speaker ships with these functions built in.
This browser-based tool implements both a stopwatch and a countdown timer using the Web API performance.now() for timing. Unlike JavaScript's setInterval, which can drift when a browser tab is throttled or the system is under load, performance.now() returns a high-resolution timestamp that is computed from the wall clock. The actual elapsed time is calculated as the difference between the start timestamp and the current timestamp, which means background-tab throttling does not cause the timer to lose time. The audible alarm is generated using the Web Audio API, which synthesises a tone directly in the browser without requiring any audio file to be loaded. All state is held in memory — closing or refreshing the tab resets everything.
A note on browser timing precision: for privacy and security reasons, browsers deliberately reduce the resolution of performance.now() to approximately 1 millisecond in most contexts (and to 5 milliseconds or more in cross-origin iframes). This is sufficient for the vast majority of timing tasks — cooking, exercise, productivity — but is not suitable for benchmarking tasks that require microsecond precision, for which you would need a dedicated hardware timer or a specialised profiling tool.
From Sundials to performance.now(): 4,000 Years of Timekeeping Technology
The history of the stopwatch begins long before electricity. The earliest mechanical stopwatches were pocket watches modified with a seconds hand that could be started and stopped independently of the main movement. The pivotal invention was the split-seconds mechanism, patented in 1862, which allowed two independent hands to be started together and stopped separately — essential for timing multiple competitors in a race. But the most significant milestone was Adolphe Nicole's 1844 patent for the first true stopwatch with a reset function: a mechanism that could return the seconds hand to zero with a single push of the crown. Nicole was a Swiss watchmaker working in London, and his invention became the standard design for chronograph watches that persists to this day. Early mechanical stopwatches were accurate to about 1/5 of a second — far less precise than a modern browser timer, but revolutionary for 19th-century sports officials.
Electronic timekeeping transformed professional sports in the 20th century. The 1932 Los Angeles Olympics were the first Games to use photo-finish technology, combining a camera with an electronic timer to resolve disputes invisible to the human eye. By the 1960s, the Swiss company Longines was providing electronic timing accurate to 1/100 of a second for the Olympics. Digital stopwatches for consumers appeared in the 1970s alongside the quartz watch revolution; the first Casio digital watch with a stopwatch function (the Casio Casiotron) launched in 1974. These battery-powered quartz oscillators could maintain time with an accuracy of a few seconds per year, vastly superior to the spring-driven mechanical watches they replaced.
Browsers implement high-resolution timing through the Performance API, specifically the performance.now() method, which was standardised by the W3C in 2012. Unlike the older Date.now() method, which returns a Unix timestamp in whole milliseconds and can jump backwards if the system clock is adjusted, performance.now() returns a floating-point number representing the time elapsed since the page's time origin, with sub-millisecond resolution. The method is monotonically increasing — it never goes backwards — making it ideal for measuring durations. Its precision was deliberately reduced from microseconds to approximately 1 millisecond after the Spectre CPU vulnerability was disclosed in January 2018, as high-resolution timers are a necessary component of certain side-channel attacks. The trade-off between timing precision and security is a fascinating example of how low-level hardware vulnerabilities can propagate all the way up to the browser APIs that everyday web applications depend on.