1<!DOCTYPE html> 2<html lang="en"> 3<head> 4
4<script> 5// Apply theme before page renders to prevent flash 6(function() { 7 var theme = localStorage.getItem('theme'); 8 if (theme === 'light') { 9 document.documentElement.classList.add('light-mode'); 10 } 11})(); 12// Tag the platform before render so app CTAs/screenshots can adapt without a flash. 13(function() { 14 var d = document.documentElement; 15 var ua = navigator.userAgent || ''; 16 var uaPlat = (navigator.userAgentData && navigator.userAgentData.platform) || ''; 17 var isIPadOS = navigator.platform === 'MacIntel' && (navigator.maxTouchPoints || 0) > 1; 18 var isIOS = /iPad|iPhone|iPod/.test(ua) || isIPadOS; 19 // A real Mac (incl. Apple Silicon, which still reports "MacIntel") has 0 touch 20 // points; an iPad in desktop Safari reports "MacIntel" with >1. 21 var isMac = !isIOS && (uaPlat 22 ? uaPlat === 'macOS' 23 : navigator.platform === 'MacIntel' && (navigator.maxTouchPoints || 0) === 0); 24 var isAndroid = /Android/.test(ua); 25 if (isIOS) d.classList.add('is-ios'); 26 if (isMac) d.classList.add('is-mac'); 27 if (isAndroid) d.classList.add('is-android'); 28})(); 29</script>
29 30 31<meta name="apple-itunes-app" content="app-id=933638040"> 32 33 <meta charset="UTF-8"> 34 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 35 36 <title>Online Stopwatch - Free Big Display Stopwatch | VisualTimer</title> 37 38<!-- Simple Analytics (privacy-friendly, cookieless) -->
39<script async src="https://scripts.simpleanalyticscdn.com/latest.js"></script>
39 40<!-- Google tag (gtag.js) â GA4 -->
vendor: 64 bytes, lines 40-41
40 41<script async src="https://www.googletagmanager.com/gtag/js?id=
41G-L1LSTNREKX
vendor: 12 bytes, line 41
41"></script>
42<script> 43
vendor: 133 bytes, lines 43-46
43window.dataLayer = window.dataLayer || []; 44 function gtag(){dataLayer.push(arguments);} 45 gtag('js', new Date()); 46 gtag('config', '
46G-L1LSTNREKX
vendor: 4 bytes, line 46
46');
47</script>
47 48 49<!-- Google Funding Choices (CMP for GDPR/CCPA consent) -->
50<script async src="https://fundingchoicesmessages.google.com/i/pub-9295273074981602?ers=1" nonce=""></script>
vendor: 1 bytes, line 50
50
51<script nonce="">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
51 52<!-- Google AdSense -->
53<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9295273074981602" 54 crossorigin="anonymous"></script>
54 55 56 57 58 <meta name="description" content="A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts â no sign-up."> 59 <meta name="keywords" content="online stopwatch, stopwatch, free stopwatch, stopwatch online, free online stopwatch, digital stopwatch, stopwatch timer, milliseconds, precise timing"> 60 <link rel="canonical" href="https://visualtimer.com/timers/online-stopwatch/"> 61 62 <link rel="alternate" hreflang="en" href="https://visualtimer.com/timers/online-stopwatch/"> 63 <link rel="alternate" hreflang="es" href="https://visualtimer.com/es/cronometro/"> 64 <link rel="alternate" hreflang="de" href="https://visualtimer.com/de/stoppuhr/"> 65 <link rel="alternate" hreflang="fr" href="https://visualtimer.com/fr/chronometre/"> 66 <link rel="alternate" hreflang="pt" href="https://visualtimer.com/pt/cronometro/"> 67 <link rel="alternate" hreflang="nl" href="https://visualtimer.com/nl/stopwatch/"> 68 <link rel="alternate" hreflang="it" href="https://visualtimer.com/it/cronometro/"> 69 <link rel="alternate" hreflang="sv" href="https://visualtimer.com/sv/stoppur/"> 70 <link rel="alternate" hreflang="no" href="https://visualtimer.com/no/stoppeklokke/"> 71 <link rel="alternate" hreflang="da" href="https://visualtimer.com/da/stopur/"> 72 <link rel="alternate" hreflang="fi" href="https://visualtimer.com/fi/sekuntikello/"> 73 <link rel="alternate" hreflang="ja" href="https://visualtimer.com/ja/stopwatch/"> 74 <link rel="alternate" hreflang="ko" href="https://visualtimer.com/ko/stopwatch/"> 75 <link rel="alternate" hreflang="x-default" href="https://visualtimer.com/timers/online-stopwatch/"> 76 77 <link rel="stylesheet" href="/styles.css"> 78 79 <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> 80 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 81 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 82 <link rel="manifest" href="/site.webmanifest"> 83 <link rel="shortcut icon" href="/favicon.ico"> 84 <meta name="theme-color" content="#1a1a1a"> 85 86 <meta property="og:title" content="Online Stopwatch - Free Online Timer"> 87 <meta property="og:description" content="A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts â no sign-up."> 88 <meta property="og:type" content="website"> 89 <meta property="og:url" content="https://visualtimer.com/timers/online-stopwatch/"> 90 <meta property="og:site_name" content="Visual Timer"> 91 <meta property="og:locale" content="en_US"> 92 <meta property="og:image" content="https://visualtimer.com/images/og/online-stopwatch.png"> 93 94 <meta name="twitter:card" content="summary_large_image"> 95 <meta name="twitter:title" content="Online Stopwatch - Free Online Timer"> 96 <meta name="twitter:description" content="A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts â no sign-up."> 97 <meta name="twitter:image" content="https://visualtimer.com/images/og/online-stopwatch.png"> 98 99
99<script type="application/ld+json"> 100 { 101 "@context": "https://schema.org", 102 "@type": "WebApplication", 103 "name": "Online Stopwatch", 104 "description": "A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts â no sign-up.", 105 "url": "https://visualtimer.com/timers/online-stopwatch/", 106 "applicationCategory": "UtilitiesApplication", 107 "operatingSystem": "Any", 108 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" } 109 } 110 </script>
110 111 112
112<script type="application/ld+json"> 113 { 114 "@context": "https://schema.org", 115 "@type": "BreadcrumbList", 116 "itemListElement": [ 117 { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://visualtimer.com/" }, 118 { "@type": "ListItem", "position": 2, "name": "All Timers", "item": "https://visualtimer.com/timers/" }, 119 { "@type": "ListItem", "position": 3, "name": "Online Stopwatch", "item": "https://visualtimer.com/timers/online-stopwatch/" } 120 ] 121 } 122 </script>
122 123 124</head> 125<body data-timer-mode="large" data-timer-duration=""> 126 <header class="site-header"> 127 <a href="/" class="site-logo">visualtimer.com</a> 128 <button class="search-toggle" id="search-toggle" aria-label="Search" title="Search (Ctrl+K)"> 129 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><line x1="21" y1="21" x2="16.3" y2="16.3"></line></svg> 130 </button> 131 <button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark/light mode" title="Toggle dark/light mode"> 132 <span class="theme-icon-dark">☾</span> 133 <span class="theme-icon-light">☀</span> 134 </button> 135 <button class="settings-toggle" id="settings-toggle" aria-label="Settings" title="Settings"> 136 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg> 137 </button> 138 <button class="hamburger" id="hamburger" aria-label="Toggle menu"> 139 <span></span> 140 <span></span> 141 <span></span> 142 </button> 143 <nav class="nav-menu" id="nav-menu"> 144 <a href="/" class="nav-item">Visual Timer</a> 145 <a href="/timers/online-stopwatch/" class="nav-item active">Stopwatch</a> 146 <a href="/timers/lap-timer/" class="nav-item">Lap Timer</a> 147 <a href="/timers/multi-stopwatch/" class="nav-item">Multi Stopwatch</a> 148 <a href="/timers/pomodoro-timer/" class="nav-item">Pomodoro</a> 149 <a href="/timers/egg-timer/" class="nav-item">Egg Timer</a> 150 <a href="/timers/breathing-timer/" class="nav-item">Breathing</a> 151 <div class="nav-dropdown"> 152 <button class="nav-item nav-dropdown-toggle">Other <span class="nav-arrow">â¼</span></button> 153 <div class="nav-dropdown-content"> 154 <a href="/timers/interactive-timer/" class="nav-item">Interactive Timer</a> 155 <a href="/timers/digital-timer/" class="nav-item">Digital Timer</a> 156 <a href="/timers/bomb-timer/" class="nav-item">Bomb Timer</a> 157 <a href="/timers/fake-timer/" class="nav-item">Fake Timer</a> 158 <a href="/timers/candle-timer/" class="nav-item">Candle Timer</a> 159 <a href="/timers/toddler-timer/" class="nav-item">Toddler Timer</a> 160 <a href="/timers/chess-clock/" class="nav-item">Chess Clock</a> 161 <a href="/timers/race-timer/" class="nav-item">Race Timer</a> 162 <a href="/timers/boxing-timer/" class="nav-item">Boxing Timer</a> 163 <a href="/timers/hiit-timer/" class="nav-item">HIIT Timer</a> 164 <a href="/timers/tabata-timer/" class="nav-item">Tabata Timer</a> 165 <a href="/timers/exam-timer/" class="nav-item">Exam Timer</a> 166 <a href="/timers/stretch-timer/" class="nav-item">Stretch Timer</a> 167 <a href="/timers/focus-timer/" class="nav-item">Focus Timer</a> 168 <a href="/timers/writing-timer/" class="nav-item">Writing Timer</a> 169 <a href="/timers/emom-timer/" class="nav-item">EMOM Timer</a> 170 <a href="/timers/presentation-timer/" class="nav-item">Presentation Timer</a> 171 <a href="/timers/debate-timer/" class="nav-item">Debate Timer</a> 172 <a href="/timers/speech-timer/" class="nav-item">Speech Timer</a> 173 <a href="/timers/meditation-timer/" class="nav-item">Meditation Timer</a> 174 <a href="/timers/contraction-timer/" class="nav-item">Contraction Timer</a> 175 <a href="/timers/julian-date/" class="nav-item">Julian Date</a> 176 <a href="/timers/liquid-timer/" class="nav-item">Liquid Timer</a> 177 <a href="/timers/sand-timer/" class="nav-item">Sand Timer</a> 178 <a href="/timers/rainbow-timer/" class="nav-item">Rainbow Timer</a> 179 <a href="/timers/pixel-timer/" class="nav-item">Pixel Grid</a> 180 <a href="/timers/rings-timer/" class="nav-item">Rings Timer</a> 181 <a href="/timers/circular-timer/" class="nav-item">Circular Timer</a> 182 <a href="/timers/picture-reveal-timer/" class="nav-item">Picture Reveal Timer</a> 183 <a href="/timers/sun-timer/" class="nav-item">Sun Timer</a> 184 <a href="/timers/spread-timer/" class="nav-item">Spread Timer</a> 185 <a href="/timers/maze-timer/" class="nav-item">Maze Timer</a> 186 <a href="/timers/blocks-timer/" class="nav-item">Blocks Timer</a> 187 <a href="/timers/breath-timer/" class="nav-item">Breath Timer</a> 188 <a href="/timers/moon-timer/" class="nav-item">Moon Timer</a> 189 <a href="/timers/bubble-timer/" class="nav-item">Bubble Timer</a> 190 <a href="/timers/coral-timer/" class="nav-item">Coral Timer</a> 191 <a href="/timers/lichen-timer/" class="nav-item">Lichen Timer</a> 192 <a href="/timers/forest-fire-timer/" class="nav-item">Forest Fire Timer</a> 193 <a href="/timers/frost-timer/" class="nav-item">Frost Timer</a> 194 <a href="/timers/progress-timer/" class="nav-item">Progress Timer</a> 195 <a href="/timers/repeat-timer/" class="nav-item">Repeat Timer</a> 196 <a href="/timers/random-timer/" class="nav-item">Random Timer</a> 197 <a href="/timers/salary-calculator/" class="nav-item">Salary Calculator</a> 198 <a href="/timers/flip-clock/" class="nav-item">Flip Clock</a> 199 <a href="/timers/timer-tab/" class="nav-item">Timer in a Tab</a> 200 <a href="/tools/bingo-caller/" class="nav-item">Bingo Caller</a> 201 <a href="/tools/random-group-generator/" class="nav-item">Random Group Generator</a> 202 <a href="/tools/random-name-picker/" class="nav-item">Random Name Picker</a> 203 <a href="/tools/noise-meter/" class="nav-item">Noise Meter</a> 204 <a href="/tools/seating-chart/" class="nav-item">
204Seating Chart</a> 205 <a href="/tools/typing-speed-test/" class="nav-item">Typing Speed Test</a> 206 <a href="/tools/teleprompter/" class="nav-item">Teleprompter</a> 207 <a href="/tools/reaction-time-test/" class="nav-item">Reaction Time Test</a> 208 <a href="/tools/metronome/" class="nav-item">Metronome</a> 209 <a href="/tools/rock-paper-scissors/" class="nav-item">Rock Paper Scissors</a> 210 <a href="/tools/dice-roller/" class="nav-item">Dice Roller</a> 211 <a href="/tools/flip-a-coin/" class="nav-item">Flip a Coin</a> 212 <a href="/tools/what-time-is-sunset/" class="nav-item">Sunset Time</a> 213 <a href="/tools/what-time-is-sunrise/" class="nav-item">Sunrise Time</a> 214 <a href="/tools/golden-hour/" class="nav-item">Golden Hour</a> 215 <a href="/tools/sun-and-sky/" class="nav-item">Sun & Sky</a> 216 <a href="/tools/moon-phase/" class="nav-item">Moon Phase</a> 217 <a href="/tools/teaching-clock/" class="nav-item">Teaching Clock</a> 218 <a href="/tools/analog-clock/" class="nav-item">Analog Clock</a> 219 <a href="/timers/analog-stopwatch/" class="nav-item">Analog Stopwatch</a> 220 <a href="/tools/classroom-scoreboard/" class="nav-item">Scoreboard</a> 221 <a href="/tools/random-number-generator/" class="nav-item">Random Number</a> 222 <a href="/tools/timer-emoji/" class="nav-item">Timer Emoji</a> 223 <a href="/tools/embed-timer/" class="nav-item">Embed a Timer</a> 224 <a href="/tools/times-tables/" class="nav-item">Times Tables</a> 225 <a href="/tools/multiplication-grid-game/" class="nav-item">Multiplication Game</a> 226 <a href="/tools/world-cup-schedule/" class="nav-item">World Cup Schedule</a> 227 </div> 228 </div> 229 <div class="nav-dropdown"> 230 <button class="nav-item nav-dropdown-toggle">Calculators <span class="nav-arrow">â¼</span></button> 231 <div class="nav-dropdown-content"> 232 <a href="/calculators/time-converter/" class="nav-item">Time Converter</a> 233 <a href="/calculators/time-duration-calculator/" class="nav-item">Time Duration Calculator</a> 234 <a href="/calculators/time-to-decimal/" class="nav-item">Time to Decimal</a> 235 <a href="/calculators/decimal-to-time/" class="nav-item">Decimal to Time</a> 236 <a href="/calculators/average-time-calculator/" class="nav-item">Average Time Calculator</a> 237 <a href="/calculators/time-addition-calculator/" class="nav-item">Time Addition Calculator</a> 238 <a href="/calculators/elapsed-time-calculator/" class="nav-item">Elapsed Time Calculator</a> 239 <a href="/calculators/time-and-a-half-calculator/" class="nav-item">Time and a Half Calculator</a> 240 <a href="/calculators/time-card-calculator/" class="nav-item">Time Card Calculator</a> 241 <a href="/calculators/days-until-date/" class="nav-item">Days Until Date</a> 242 <a href="/calculators/days-left-in-year/" class="nav-item">Days Left in Year</a> 243 <a href="/calculators/days-passed-in-year/" class="nav-item">Days Passed in Year</a> 244 <a href="/calculators/zulu-time/" class="nav-item">Zulu Time</a> 245 <a href="/calculators/military-time/" class="nav-item">Military Time</a> 246 <a href="/calculators/speech-time-calculator/" class="nav-item">Speech Time Calculator</a> 247 <a href="/calculators/time-zone-converter/" class="nav-item">Time Zone Converter</a> 248 <a href="/calculators/how-many-time-zones/" class="nav-item">How Many Time Zones</a> 249 <a href="/calculators/daylight-saving-time/" class="nav-item">Daylight Saving</a> 250 <a href="/calculators/est-to-pst/" class="nav-item">EST to PST</a> 251 <a href="/calculators/age-calculator/" class="nav-item">Age Calculator</a> 252 <a href="/calculators/pace-calculator/" class="nav-item">Pace Calculator</a> 253 <a href="/calculators/sleep-calculator/" class="nav-item">Sleep Calculator</a> 254 </div> 255 </div> 256 </nav> 257</header> 258<div class="settings-overlay" id="settings-overlay" hidden> 259 <div class="settings-box" role="dialog" aria-modal="true" aria-label="Settings"> 260 <div class="settings-head"> 261 <h2>Settings</h2> 262 <button class="settings-close" id="settings-close" aria-label="Close settings">✕</button> 263 </div> 264 <div class="settings-list"> 265 <label class="setting-row">
266 <span class="setting-text"> 267 <span class="setting-name">Show numeric time in fullscreen</span> 268 <span class="setting-desc">When off, fullscreen shows only the visualisation - for example just the traffic light - with no digits.</span> 269 </span> 270 <span class="setting-switch"> 271 <input type="checkbox" id="set-fs-time" data-setting="fsTime" checked> 272 <span class="switch-track"></span> 273 </span> 274 </label> 275 </div> 276 <div class="settings-actions"> 277 <button type="button" class="settings-action" id="settings-contact"> 278 <span aria-hidden="true">✉</span> Contact us 279 </button> 280 281 <a class="settings-action" href="https://buymeacoffee.com/visualtimer.com" target="_blank" rel="noopener"> 282 <span aria-hidden="true">☕</span> Buy me a coffee 283 </a> 284 285 </div> 286 </div> 287</div>
288<script> 289(function() { 290 var KEY = 'vtSettings'; 291 function load() { try { return JSON.parse(localStorage.getItem(KEY)) || {}; } catch (e) { return {}; } } 292 function save(s) { try { localStorage.setItem(KEY, JSON.stringify(s)); } catch (e) {} } 293 294 var settings = load(); 295 if (settings.fsTime === undefined) settings.fsTime = true; // default: show time 296 297 // Apply settings to the document (runs on every page load). 298 function apply() { 299 document.documentElement.classList.toggle('fs-hide-time', settings.fsTime === false); 300 } 301 apply(); 302 303 var overlay = document.getElementById('settings-overlay'); 304 var openBtn = document.getElementById('settings-toggle'); 305 var closeBtn = document.getElementById('settings-close'); 306 307 function open() { 308 // Sync the switches to the stored values before showing. 309 document.querySelectorAll('#settings-overlay [data-setting]').forEach(function(el) { 310 el.checked = settings[el.dataset.setting] !== false; 311 }); 312 if (overlay) overlay.hidden = false; 313 } 314 function close() { if (overlay) overlay.hidden = true; } 315 316 if (openBtn) openBtn.addEventListener('click', open); 317 if (closeBtn) closeBtn.addEventListener('click', close); 318 if (overlay) overlay.addEventListener('click', function(e) { if (e.target === overlay) close(); }); 319 document.addEventListener('keydown', function(e) { 320 if (e.key === 'Escape' && overlay && !overlay.hidden) close(); 321 }); 322 323 document.querySelectorAll('#settings-overlay [data-setting]').forEach(function(el) { 324 el.addEventListener('change', function() { 325 settings[el.dataset.setting] = el.checked; 326 save(settings); 327 apply(); 328 }); 329 }); 330 331 // Contact: reuse the existing contact modal from the footer. 332 var contactBtn = document.getElementById('settings-contact'); 333 if (contactBtn) { 334 contactBtn.addEventListener('click', function() { 335 close(); 336 var cm = document.getElementById('contact-modal'); 337 if (cm) cm.classList.add('open'); 338 }); 339 } 340})(); 341</script>
341 342 343<div class="search-overlay" id="search-overlay" hidden> 344 <div class="search-box" role="dialog" aria-label="Site search"> 345 <input type="text" id="search-input" placeholder="Search timers, tools, calculatorsâ¦" autocomplete="off" spellcheck="false"> 346 <ul class="search-results" id="search-results"></ul> 347 <div class="search-empty" id="search-empty" hidden>No matches â try a different word.</div> 348 </div> 349</div>
350<script> 351(function() { 352 var overlay = document.getElementById('search-overlay'); 353 var input = document.getElementById('search-input'); 354 var list = document.getElementById('search-results'); 355 var empty = document.getElementById('search-empty'); 356 var toggle = document.getElementById('search-toggle'); 357 var index = null; 358 var activeIdx = -1; 359 360 function openSearch() { 361 overlay.hidden = false; 362 input.value = ''; 363 list.innerHTML = ''; 364 empty.hidden = true; 365 activeIdx = -1; 366 input.focus(); 367 if (!index) { 368 fetch('/search-index.json').then(function(r) { return r.json(); }).then(function(data) { 369 var seen = {}; 370 index = data.filter(function(d) { 371 if (seen[d.u]) return false; 372 seen[d.u] = true; 373 return true; 374 }); 375 }).catch(function() { index = []; }); 376 } 377 } 378 379 function closeSearch() { 380 overlay.hidden = true; 381 } 382 383 function shortTitle(t) { 384 return t.split(' - ')[0].split(' | ')[0]; 385 } 386 387 function search(q) { 388 var tokens = q.toLowerCase().split(/\s+/).filter(Boolean); 389 if (!tokens.length || !index) return []; 390 var scored = []; 391 for (var i = 0; i < index.length; i++) { 392 var t = index[i].t.toLowerCase(); 393 var score = 0, ok = true; 394 for (var j = 0; j < tokens.length; j++) { 395 var pos = t.indexOf(tokens[j]); 396 if (pos === -1) { ok = false; break; } 397 score += pos; 398 // word-start matches rank above mid-word ones 399 if (pos === 0 || t.charAt(pos - 1) === ' ') score -= 20; 400 } 401 if (ok) scored.push([score, index[i]]); 402 } 403 scored.sort(function(a, b) { return a[0] - b[0]; }); 404 return scored.slice(0, 12).map(function(s) { return s[1]; }); 405 } 406 407 function render() { 408 var results = search(input.value); 409 list.innerHTML = ''; 410 activeIdx = results.length ? 0 : -1; 411 empty.hidden = !(input.value.trim() && index && !results.length); 412 results.forEach(function(r, i) { 413 var li = document.createElement('li'); 414 var a = document.createElement('a'); 415 a.href = r.u; 416 a.textContent = shortTitle(r.t); 417 if (i === 0) li.className = 'active'; 418 li.appendChild(a); 419 li.addEventListener('mouseenter', function() { setActive(i); }); 420 list.appendChild(li); 421 }); 422 } 423 424 function setActive(i) { 425 var items = list.children; 426 if (activeIdx >= 0 && items[activeIdx]) items[activeIdx].className = ''; 427 activeIdx = i; 428 if (items[activeIdx]) items[activeIdx].className = 'active'; 429 } 430 431 if (toggle) toggle.addEventListener('click', openSearch); 432 433 overlay.addEventListener('click', function(e) { 434 if (e.target === overlay) closeSearch(); 435 }); 436 437 input.addEventListener('input', function() { 438 if (index) { render(); return; } 439 // index still loading â retry shortly 440 setTimeout(render, 200); 441 }); 442 443 input.addEventListener('keydown', function(e) { 444 var items = list.children; 445 if (e.key === 'ArrowDown' && items.length) { 446 e.preventDefault(); 447 setActive(Math.min(activeIdx + 1, items.length - 1)); 448 } else if (e.key === 'ArrowUp' && items.length) { 449 e.preventDefault(); 450 setActive(Math.max(activeIdx - 1, 0)); 451 } else if (e.key === 'Enter' && activeIdx >= 0 && items[activeIdx]) { 452 window.location.href = items[activeIdx].querySelector('a').href; 453 } else if (e.key === 'Escape') { 454 closeSearch(); 455 } 456 }); 457 458 document.addEventListener('keydown', function(e) { 459 if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') { 460 e.preventDefault(); 461 overlay.hidden ? openSearch() : closeSearch(); 462 } else if (e.key === '/' && overlay.hidden) { 463 var tag = e.target && e.target.tagName; 464 if (tag !== 'INPUT' && tag !== 'TEXTAREA' && !(e.target && e.target.isContentEditable)) { 465 e.preventDefault(); 466 openSearch(); 467 } 468 } else if (e.key === 'Escape' && !overlay.hidden) { 469 closeSearch(); 470 } 471 }); 472})(); 473</script>
vendor: 1 bytes, line 473
473
474<script> 475(function() { 476 var hamburger = document.getElementById('hamburger'); 477 var navMenu = document.getElementById('nav-menu'); 478 479 if (hamburger && navMenu) { 480 hamburger.dataset.initialized = 'true'; 481 hamburger.addEventListener('click', function(e) { 482 e.preventDefault(); 483 e.stopPropagation(); 484 hamburger.classList.toggle('active'); 485 navMenu.classList.toggle('open'); 486 }); 487 } 488 489 // Close menu when clicking outside 490 document.addEventListener('click', function(e) { 491 if (navMenu && hamburger && !navMenu.contains(e.target) && !hamburger.contains(e.target)) { 492 hamburger.classList.remove('active'); 493 navMenu.classList.remove('open'); 494 } 495 }); 496 497 // Close menu when clicking a link 498 document.querySelectorAll('.nav-menu .nav-item:not(.nav-dropdown-toggle)').forEach(function(link) { 499 link.addEventListener('click', function() { 500 hamburger.classList.remove('active'); 501 navMenu.classList.remove('open'); 502 }); 503 }); 504 505 // Theme toggle 506 var themeToggle = document.getElementById('theme-toggle'); 507 var savedTheme = localStorage.getItem('theme'); 508 509 // Apply saved theme or default to dark 510 if (savedTheme === 'light') { 511 document.documentElement.classList.add('light-mode'); 512 } 513 514 if (themeToggle) { 515 themeToggle.addEventListener('click', function() { 516 document.documentElement.classList.toggle('light-mode'); 517 var isLight = document.documentElement.classList.contains('light-mode'); 518 localStorage.setItem('theme', isLight ? 'light' : 'dark'); 519 }); 520 } 521})(); 522</script>
522 523 524 525 526 527 <main class="container"> 528 529 <div id="large-mode" class="mode fs-full-ui active"> 530 <h1>Online Stopwatch</h1> 531 <div class="large-display"> 532 <span class="time time-bold" id="large-time">00:00.00</span> 533 </div> 534 <div class="controls"> 535 <button class="btn btn-start" id="large-start">Start</button> 536 <button class="btn btn-reset" id="large-reset">Reset</button> 537 </div> 538 <button class="fullscreen-btn" data-fullscreen="large-mode">â¶ Fullscreen</button> 539 540 <section class="content"> 541 <h2>Free Online Stopwatch</h2> 542 <p>A simple, accurate online stopwatch with a large, easy-to-read display. Measures time with centisecond (1/100th second) precision. No downloads required - works instantly in your browser on any device.</p> 543 544 <h2>Stopwatch Features</h2> 545 <ul> 546 <li><strong>Centisecond precision</strong> - Accurate to 1/100th of a second</li> 547 <li><strong>Large display</strong> - Easy to read from a distance</li> 548 <li><strong>Keyboard shortcuts</strong> - Press Space to start/stop</li> 549 <li><strong>Works offline</strong> - Once loaded, no internet needed</li> 550 <li><strong>Mobile friendly</strong> - Works on phones, tablets, and computers</li> 551 </ul> 552 553 <h2>Perfect For</h2> 554 <ul> 555 <li><strong>Exercise and fitness</strong> - Track workout duration, planks, rest periods, and interval training</li> 556 <li><strong>Sports timing</strong> - Time sprints, laps, swimming, and athletic events</li> 557 <li><strong>Cooking</strong> - Time recipes that need precise durations</li> 558 <li><strong>Presentations</strong> - Practice and time your talks and speeches</li> 559 <li><strong>Games and competitions</strong> - Time turns, challenges, and speed runs</li> 560 <li><strong>Productivity</strong> - Track how long tasks actually take with time tracking</li> 561 <li><strong>Science experiments</strong> - Measure reaction times and durations</li> 562 <li><strong>Music practice</strong> - Time practice sessions and tempo exercises</li> 563 </ul> 564 565 <h2>How to Use the Stopwatch</h2> 566 <ol> 567 <li>Click <strong>Start</strong> or press <kbd>Space</kbd> to begin timing</li> 568 <li>Click <strong>Stop</strong> or press <kbd>Space</kbd> again to pause</li> 569 <li>Click <strong>Reset</strong> to return to zero</li> 570 </ol> 571 572 <h2>Need More Features?</h2> 573 <p>Check out our other timing tools:</p> 574 <ul> 575 <li><a href="/timers/lap-timer/">Lap Timer</a> - Record split times and lap times</li> 576 <li><a href="/timers/multi-stopwatch/">Multi Stopwatch</a> - Time multiple participants simultaneously</li> 577 <li><a href="/timers/race-timer/">Race Timer</a> - Record finish times for races</li> 578 <li><a href="/timers/countup-timer/">Count Up Timer</a> - Elapsed time tracker</li> 579 </ul> 580 581 <h2>Stopwatch vs Timer</h2> 582 <p>A stopwatch counts up from zero to measure elapsed time, while a timer counts down from a set duration. Use a stopwatch when you want to measure how long something takes. Use a <a href="/timers/countdown-timer/">countdown timer</a> when you need to track remaining time.</p> 583 </section></div> 584 585 586 </main> 587 588 589 590 591 592 <section class="related-timers"> 593 <h2>Related Timers</h2> 594 <div class="related-timers-grid"> 595 596 <a href="/timers/online-stopwatch/">Stopwatch</a> 597 <a href="/timers/analog-stopwatch/">Analog Stopwatch</a> 598 <a href="/timers/lap-timer/">Lap Timer</a> 599 <a href="/timers/race-timer/">Race Timer</a> 600 <a href="/timers/multi-stopwatch/">Multi Stopwatch</a> 601 <a href="/">Visual Timer</a> 602 <a href="/timers/timer-tools/">All Tools</a> 603 604 </div> 605 </section> 606 607 608<section class="ios-app-section"> 609 <div class="ios-app-content"> 610 <div class="ios-app-icon"> 611 <img src="/images/apps/multi-stopwatch/icon.jpg" alt="Multi-Stopwatch iOS App Icon"> 612 </div> 613 <div class="ios-app-details"> 614 <h3>Multi-Stopwatch - Multiple Timers</h3> 615 <p>Time multiple participants simultaneously with independent stopwatches. Perfect for coaches, races, group activities, and timing multiple people at once.</p> 616 <div class="ios-app-features">
617 <span class="ios-app-feature">Multiple stopwatches</span> 618 <span class="ios-app-feature">Independent controls</span> 619 <span class="ios-app-feature">Lap times</span> 620 <span class="ios-app-feature">Export results</span> 621 </div> 622 <a href="https://apps.apple.com/app/id933638040" class="app-store-btn">Download on the App Store</a> 623 </div> 624 </div> 625 <div class="app-screenshots"> 626 <img src="/images/apps/multi-stopwatch/screenshot-1.png" alt="Multi-Stopwatch Screenshot 1" loading="lazy"> 627 <img src="/images/apps/multi-stopwatch/screenshot-2.png" alt="Multi-Stopwatch Screenshot 2" loading="lazy"> 628 <img src="/images/apps/multi-stopwatch/screenshot-3.png" alt="Multi-Stopwatch Screenshot 3" loading="lazy"> 629 <img src="/images/apps/multi-stopwatch/screenshot-4.png" alt="Multi-Stopwatch Screenshot 4" loading="lazy"> 630 <img src="/images/apps/multi-stopwatch/screenshot-5.png" alt="Multi-Stopwatch Screenshot 5" loading="lazy"> 631 </div> 632</section> 633 634 635 636 <footer class="site-footer"> 637 <div class="footer-content"> 638 <div class="footer-columns"> 639 <div class="footer-column"> 640 <h3>Visual Timers</h3> 641 <ul> 642 <li><a href="/timers/visual-timer/">Visual Timer</a></li> 643 <li><a href="/timers/minute-timers/">Minute Timers (1–60)</a></li> 644 <li><a href="/timers/sand-timer/">Sand Timer</a></li> 645 <li><a href="/timers/liquid-timer/">Liquid Timer</a></li> 646 <li><a href="/timers/rainbow-timer/">Rainbow Timer</a></li> 647 <li><a href="/timers/hourglass-timer/">Hourglass Timer</a></li> 648 <li><a href="/timers/circular-timer/">Circular Timer</a></li> 649 <li><a href="/timers/radial-timer/">Radial Timer</a></li> 650 <li><a href="/timers/rings-timer/">Rings Timer</a></li> 651 <li><a href="/timers/progress-timer/">Progress Timer</a></li> 652 <li><a href="/timers/pixel-timer/">Pixel Timer</a></li> 653 <li><a href="/timers/blocks-timer/">Blocks Timer</a></li> 654 <li><a href="/timers/candle-timer/">Candle Timer</a></li> 655 <li><a href="/timers/aesthetic-timer/">Aesthetic Timer</a></li> 656 <li><a href="/timers/picture-reveal-timer/">Picture Reveal Timer</a></li> 657 <li><a href="/timers/heart-timer/">Heart Timer</a></li> 658 <li><a href="/timers/moon-timer/">Moon Timer</a></li> 659 <li><a href="/timers/sun-timer/">Sun Timer</a></li> 660 <li><a href="/timers/bubble-timer/">Bubble Timer</a></li> 661 <li><a href="/timers/coral-timer/">Coral Timer</a></li> 662 <li><a href="/timers/lichen-timer/">Lichen Timer</a></li> 663 <li><a href="/timers/frost-timer/">Frost Timer</a></li> 664 <li><a href="/timers/snow-timer/">Snow Timer</a></li> 665 <li><a href="/timers/galaxy-timer/">Galaxy Timer</a></li> 666 <li><a href="/timers/lava-lamp-timer/">Lava Lamp Timer</a></li> 667 <li><a href="/timers/spinner-timer/">Spinner Timer</a></li> 668 <li><a href="/timers/flip-timer/">Flip Timer</a></li> 669 <li><a href="/timers/forest-fire-timer/">Forest Fire Timer</a></li> 670 <li><a href="/timers/maze-timer/">Maze Timer</a></li> 671 <li><a href="/timers/spread-timer/">Spread Timer</a></li> 672 <li><a href="/timers/flip-clock/">Flip Clock</a></li> 673 <li><a href="/timers/sensory-timers/">Sensory Timers</a></li> 674 <li><a href="/timers/fun-timers/">Fun Timers</a></li> 675 </ul> 676 </div> 677 <div class="footer-column"> 678 <h3>Other Tools</h3> 679 <ul> 680 <li><a href="/timers/interactive-timer/">Interactive Timer</a></li> 681 <li><a href="/timers/digital-timer/">Digital Timer</a></li> 682 <li><a href="/timers/virtual-timer/">Virtual Timer</a></li> 683 <li><a href="/timers/bomb-timer/">Bomb Timer</a></li> 684 <li><a href="/timers/fake-timer/">Fake Timer (Prank)</a></li> 685 <li><a href="/timers/ticking-timer/">Ticking Timer</a></li> 686 <li><a href="/timers/no-contact-timer/">No Contact Timer</a></li> 687 <li><a href="/timers/toddler-timer/">Toddler Timer</a></li> 688 <li><a href="/timers/online-stopwatch/">Online Stopwatch</a></li> 689 <li><a href="/timers/analog-stopwatch/">Analog Stopwatch</a></li> 690 <li><a href="/timers/lap-timer/">Lap Timer</a></li> 691 <li><a href="/timers/race-timer/">Race Timer</a></li> 692 <li><a href="/timers/multi-stopwatch/">Multi Stopwatch</a></li> 693 <li><a href="/timers/multi-timer/">Multiple Timers</a></li> 694 <li><a href="/timers/chess-clock/">Chess Clock</a></li> 695 <li><a href="/timers/presentation-timer/">Presentation Timer</a></li> 696 <li><a href="/timers/debate-timer/">Debate Timer</a></li> 697 <li><a href="/timers/speech-timer/">Speech Timer</a></li> 698 <li><a href="/timers/traffic-light-timer/">Traffic Light Timer</a></li> 699 <li><a href="/timers/contraction-timer/">Contraction Tracker</a></li> 700 <li><a href="/timers/teeth-brushing-timer/">Teeth Brushing Timer</a></li> 701 <li><a href="/timers/popcorn-timer/">Popcorn Timer</a></li> 702 <li><a href="/timers/breath-timer/">Breath Timer</a></li> 703 <li><a href="/timers/salary-calculator/">Salary Calculator</a></li> 704 <li><a href="/timers/repeat-timer/">Repeat Timer</a></li> 705 <li><a href="/timers/random-timer/">Random Timer</a></li> 706 <li><a href="/timers/timer-tab/">Timer in a Tab</a></li> 707 <li><a href="/timers/boxing-timer/">Boxing Timer</a></li> 708 <li><a href="/timers/emom-timer/">EMOM Timer</a></li> 709 <li><a href="/timers/hiit-timer/">HIIT Timer</a></li> 710 <li><a href="/timers/tabata-timer/">Tabata Timer</a></li> 711 <li><a href="/timers/exam-timer/">Exam Timer</a></li> 712 <li><a href="/timers/fullscreen-timer/">Fullscreen Timer</a></li> 713 <li><a href="/timers/big-timer/">Big Timer</a></li> 714 <li><a href="/timers/stretch-timer/">Stretch Timer</a></li> 715 <li><a href="/timers/focus-timer/">Focus Timer</a></li> 716 <li><a href="/timers/20-20-20-timer/">20-20-20 Eye Timer</a></li> 717 <li><a href="/timers/agenda-timer/">Agenda Timer</a></li> 718 <li><a href="/timers/coffee-brew-timer/">Coffee Brew Timer</a></li> 719 <li><a href="/timers/ice-bath-timer/">Ice Bath Timer</a></li> 720 </ul> 721 </div> 722 <div class="footer-column"> 723 <h3>Classroom Tools</h3> 724 <ul> 725 <li><a href="/tools/bingo-caller/">Bingo Caller</a></li> 726 <li><a href="/tools/random-group-generator/">Random Group Generator</a></li> 727 <li><a href="/tools/random-name-picker/">Random Name Picker</a></li> 728 <li><a href="/tools/noise-meter/">Noise Meter</a></li> 729 <li><a href="/tools/seating-chart/">
729Seating Chart</a></li> 730 <li><a href="/tools/typing-speed-test/">Typing Speed Test</a></li> 731 <li><a href="/tools/teleprompter/">Teleprompter</a></li> 732 <li><a href="/tools/reaction-time-test/">Reaction Time Test</a></li> 733 <li><a href="/tools/metronome/">Metronome</a></li> 734 <li><a href="/tools/rock-paper-scissors/">Rock Paper Scissors</a></li> 735 <li><a href="/tools/dice-roller/">Dice Roller</a></li> 736 <li><a href="/tools/flip-a-coin/">Flip a Coin</a></li> 737 <li><a href="/tools/sun-and-sky/">Sun & Sky</a></li> 738 <li><a href="/tools/what-time-is-sunset/">What Time Is Sunset</a></li> 739 <li><a href="/tools/what-time-is-sunrise/">What Time Is Sunrise</a></li> 740 <li><a href="/tools/golden-hour/">Golden Hour</a></li> 741 <li><a href="/tools/blue-hour/">Blue Hour</a></li> 742 <li><a href="/tools/magic-hour/">Magic Hour</a></li> 743 <li><a href="/tools/dawn/">Dawn</a></li> 744 <li><a href="/tools/dusk/">Dusk</a></li> 745 <li><a href="/tools/twilight/">Twilight</a></li> 746 <li><a href="/tools/nautical-twilight/">Nautical Twilight</a></li> 747 <li><a href="/tools/astronomical-twilight/">Astronomical Twilight</a></li> 748 <li><a href="/tools/nautical-dawn/">Nautical Dawn</a></li> 749 <li><a href="/tools/nautical-dusk/">Nautical Dusk</a></li> 750 <li><a href="/tools/astronomical-dawn/">Astronomical Dawn</a></li> 751 <li><a href="/tools/astronomical-dusk/">Astronomical Dusk</a></li> 752 <li><a href="/tools/timer-emoji/">Timer Emoji</a></li> 753 <li><a href="/tools/embed-timer/">Embed a Timer</a></li> 754 <li><a href="/tools/moon-phase/">Moon Phase</a></li> 755 <li><a href="/tools/teaching-clock/">Teaching Clock</a></li> 756 <li><a href="/tools/analog-clock/">Analog Clock</a></li> 757 <li><a href="/tools/digital-clock/">Digital Clock</a></li> 758 <li><a href="/tools/online-clock/">Online Clock</a></li> 759 <li><a href="/tools/online-alarm-clock/">Online Alarm Clock</a></li> 760 <li><a href="/tools/world-clock/">World Clock</a></li> 761 <li><a href="/tools/video-timer/">Video Timer</a></li> 762 <li><a href="/tools/cube-timer/">Rubik's Cube Timer</a></li> 763 <li><a href="/tools/classroom-scoreboard/">Classroom Scoreboard</a></li> 764 <li><a href="/tools/random-number-generator/">Random Number Generator</a></li> 765 <li><a href="/tools/times-tables/">Times Tables</a></li> 766 <li><a href="/tools/multiplication-grid-game/">Multiplication Game</a></li> 767 <li><a href="/tools/world-cup-schedule/">World Cup Schedule</a></li> 768 <li><a href="/timers/presentation-timer/">Presentation Timer</a></li> 769 <li><a href="/timers/classroom-timer/">Classroom Timer</a></li> 770 <li><a href="/">Visual Timer</a></li> 771 <li><a href="/timers/online-stopwatch/">Stopwatch</a></li> 772 </ul> 773 </div> 774 <div class="footer-column"> 775 <h3>Categories</h3> 776 <ul> 777 <li><a href="/timers/visual-timer/">Visual Timers</a></li> 778 <li><a href="/timers/sensory-timers/">Sensory Timers</a></li> 779 <li><a href="/timers/fun-timers/">Fun Timers</a></li> 780 <li><a href="/timers/aesthetic-timer/">Aesthetic Timers</a></li> 781 <li><a href="/timers/speedrun-timer/">Speedrun Timer</a></li> 782 <li><a href="/timers/timer-for-kids/">Timer for Kids</a></li> 783 <li><a href="/timers/work-timer/">Work Timer</a></li> 784 <li><a href="/timers/20-minute-timer-with-music/">Timer with Music</a></li> 785 <li><a href="/timers/timer-videos/">Timer Videos</a></li> 786 <li><a href="/tools/stay-awake/">Stay Awake</a></li> 787 <li><a href="/timers/algorithm-timers/">Algorithm Timers</a></li> 788 <li><a href="/timers/countdowns/">Date Countdowns</a></li> 789 <li><a href="/timers/pomodoro-timer/">Pomodoro Timers</a></li> 790 <li><a href="/timers/tomato-timer/">Tomato Timer</a></li> 791 <li><a href="/timers/timer-tools/">Timer Tools</a></li> 792 <li><a href="/timers/visual-timer-autism/">Visual Timer for Autism</a></li> 793 <li><a href="/timers/visual-timers-for-adhd/">Visual Timers for ADHD</a></li> 794 <li><a href="/timers/classroom-timer/">Classroom Timer</a></li> 795 <li><a href="/timers/countdown-timer/">Countdown Timer</a></li> 796 <li><a href="/timers/countup-timer/">Count Up Timer</a></li> 797 <li><a href="/timers/custom-timer/">Custom Timer</a></li> 798 <li><a href="/timers/interval-beep-timer/">Timer That Beeps</a></li> 799 <li><a href="/apps/best-timer-apps/">Best Timer Apps</a></li> 800 <li><a href="/apps/best-clock-apps/">Best Clock Apps</a></li> 801 <li><a href="/apps/best-apps-for-teachers/">Best Apps for Teachers</a></li> 802 <li><a href="/apps/best-apps-for-parents/">Best Apps for Parents</a></li> 803 <li><a href="/apps/best-time-calculator-apps/">Best Calculator Apps</a></li> 804 </ul> 805 </div> 806 <div class="footer-column"> 807 <h3>Calculators</h3> 808 <ul> 809 <li><a href="/calculators/time-converter/">Time Converter</a></li> 810 <li><a href="/calculators/time-duration-calculator/">Time Duration Calculator</a></li> 811 <li><a href="/calculators/time-to-decimal/">Time to Decimal</a></li> 812 <li><a href="/calculators/decimal-to-time/">
812Decimal to Time</a></li> 813 <li><a href="/calculators/average-time-calculator/">Average Time Calculator</a></li> 814 <li><a href="/calculators/time-addition-calculator/">Time Addition Calculator</a></li> 815 <li><a href="/calculators/elapsed-time-calculator/">Elapsed Time Calculator</a></li> 816 <li><a href="/calculators/time-and-a-half-calculator/">Time and a Half Calculator</a></li> 817 <li><a href="/calculators/time-card-calculator/">Time Card Calculator</a></li> 818 <li><a href="/calculators/days-left-in-year/">Days Left in Year</a></li> 819 <li><a href="/calculators/days-passed-in-year/">Days Passed in Year</a></li> 820 <li><a href="/calculators/days-until-date/">Days Until Date</a></li> 821 <li><a href="/calculators/zulu-time/">Zulu Time Converter</a></li> 822 <li><a href="/calculators/military-time/">Military Time</a></li> 823 <li><a href="/calculators/speech-time-calculator/">Speech Time Calculator</a></li> 824 <li><a href="/calculators/time-zone-converter/">Time Zone Converter</a></li> 825 <li><a href="/calculators/how-many-time-zones/">How Many Time Zones</a></li> 826 <li><a href="/calculators/daylight-saving-time/">Daylight Saving Time</a></li> 827 <li><a href="/calculators/est-to-pst/">EST to PST</a></li> 828 <li><a href="/calculators/est-to-gmt/">EST to GMT</a></li> 829 <li><a href="/calculators/gmt-to-ist/">GMT to IST</a></li> 830 <li><a href="/calculators/est-to-ist/">EST to IST</a></li> 831 <li><a href="/calculators/cst-to-est/">CST to EST</a></li> 832 <li><a href="/calculators/age-calculator/">Age Calculator</a></li> 833 <li><a href="/tools/life-in-weeks/">Life in Weeks</a></li> 834 <li><a href="/calculators/date-difference-calculator/">Date Difference Calculator</a></li> 835 <li><a href="/calculators/roman-numerals/">Roman Numerals Converter</a></li> 836 <li><a href="/calculators/pace-calculator/">Pace Calculator</a></li> 837 <li><a href="/calculators/sleep-calculator/">Sleep Calculator</a></li> 838 <li><a href="/calculators/hours-calculator/">Hours Calculator</a></li> 839 <li><a href="/calculators/overtime-calculator/">Overtime Calculator</a></li> 840 <li><a href="/calculators/business-days-calculator/">Business Days Calculator</a></li> 841 <li><a href="/calculators/days-since-calculator/">Days Since Calculator</a></li> 842 <li><a href="/calculators/week-of-the-year/">Week of the Year</a></li> 843 <li><a href="/calculators/minutes-to-hours/">Minutes to Hours</a></li> 844 <li><a href="/calculators/hours-to-minutes/">Hours to Minutes</a></li> 845 <li><a href="/calculators/seconds-to-hours/">Seconds to Hours</a></li> 846 <li><a href="/calculators/utc-time/">UTC Time</a></li> 847 <li><a href="/calculators/utc-to-est/">UTC to EST</a></li> 848 <li><a href="/calculators/epoch-converter/">Epoch Converter</a></li> 849 <li><a href="/calculators/age-difference-calculator/">Age Difference Calculator</a></li> 850 <li><a href="/calculators/half-birthday-calculator/">Half Birthday Calculator</a></li> 851 <li><a href="/calculators/anniversary-calculator/">Anniversary Calculator</a></li> 852 <li><a href="/calculators/pst-to-cst/">PST to CST</a></li> 853 <li><a href="/calculators/cst-to-pst/">CST to PST</a></li> 854 <li><a href="/calculators/mst-to-est/">MST to EST</a></li> 855 <li><a href="/calculators/utc-to-pst/">UTC to PST</a></li> 856 <li><a href="/calculators/utc-to-cst/">UTC to CST</a></li> 857 <li><a href="/calculators/utc-to-ist/">UTC to IST</a></li> 858 <li><a href="/calculators/gmt-to-pst/">GMT to PST</a></li> 859 <li><a href="/calculators/ist-to-cst/">IST to CST</a></li> 860 </ul> 861 </div> 862 <div class="footer-column"> 863 <h3>International</h3> 864 <ul> 865 <li><a href="/es/temporizador/">ðªð¸ Temporizador Online</a></li> 866 <li><a href="/es/cronometro/">ðªð¸ Cronómetro Online</a></li> 867 <li><a href="/de/timer/">ð©ðª Timer Online</a></li> 868 <li><a href="/de/stoppuhr/">ð©ðª Stoppuhr Online</a></li> 869 <li><a href="/fr/minuteur/">ð«ð· Minuteur en Ligne</a></li> 870 <li><a href="/fr/chronometre/">ð«ð· Chronomètre en Ligne</a></li> 871 <li><a href="/pt/temporizador/">ð§ð· Temporizador Online</a></li> 872 <li><a href="/pt/cronometro/">ð§ð· Cronômetro Online</a></li> 873 <li><a href="/nl/timer/">ð³ð± Timer Online</a></li> 874 <li><a href="/nl/stopwatch/">ð³ð± Stopwatch Online</a></li> 875 <li><a href="/it/timer/">ð®ð¹ Timer Online</a></li> 876 <li><a href="/it/cronometro/">ð®ð¹ Cronometro Online</a></li> 877 <li><a href="/sv/timer/">ð¸ðª Timer Online</a></li> 878 <li><a href="/sv/stoppur/">ð¸ðª Stoppur Online</a></li> 879 <li><a href="/no/timer/">ð³ð´ Timer pÃ¥ Nett</a></li> 880 <li><a href="/no/stoppeklokke/">ð³ð´ Stoppeklokke</a></li> 881 <li><a href="/da/timer/">ð©ð° Timer Online</a></li> 882 <li><a href="/da/stopur/">ð©ð° Stopur Online</a></li> 883 <li><a href="/fi/ajastin/">ð«ð® Ajastin Verkossa</a></li> 884 <li><a href="/fi/sekuntikello/">ð«ð® Sekuntikello</a></li> 885 <li><a href="/ja/timer/">ð¯ðµ ãªã³ã©ã¤ã³ã¿ã¤ãã¼</a></li> 886 <li><a href="/ja/stopwatch/">ð¯ðµ ã¹ãããã¦ã©ãã</a></li> 887 <li><a href="/ko/timer/">ð°ð· ì¨ë¼ì¸ íì´ë¨¸</a></li> 888 <li><a href="/ko/stopwatch/">ð°ð· ì¨ë¼ì¸ ì¤í±ìì¹</a></li> 889 </ul> 890 </div> 891 <div class="footer-column"> 892 <h3>Date Countdowns</h3> 893 <ul> 894 <li><a href="/timers/midnight-countdown/">Countdown to Midnight</a></li> 895 <li><a href="/timers/christmas-countdown/">Christmas Countdown</a></li> 896 <li><a href="/timers/new-year-countdown/">New Year Countdown</a></li> 897 <li><a href="/timers/valentines-day-countdown/">Valentine's Day Countdown</a></li> 898 <li><a href="/timers/mothers-day-countdown/">Mother's Day Countdown</a></li> 899 <li><a href="/timers/fathers-day-countdown/">Father's Day Countdown</a></li> 900 <li><a href="/timers/easter-countdown/">Easter Countdown</a></li> 901 <li><a href="/timers/spring-countdown/">Spring Countdown</a></li> 902 <li><a href="/timers/summer-countdown/">Summer Countdown</a></li> 903 <li><a href="/timers/fall-countdown/">Fall Countdown</a></li> 904 <li><a href="/timers/halloween-countdown/">Halloween Countdown</a></li> 905 <li><a href="/timers/thanksgiving-countdown/">Thanksgiving Countdown</a></li> 906 <li><a href="/timers/black-friday-countdown/">Black Friday Countdown</a></li> 907 <li><a href="/timers/julian-date/">Today's Julian Date</a></li> 908 <li><a href="/timers/birthday-countdown/">Birthday Countdown</a></li> 909 <li><a href="/timers/wedding-countdown/">Wedding Countdown</a></li> 910 <li><a href="/timers/vacation-countdown/">Vacation Countdown</a></li> 911 <li><a href="/timers/weekend-countdown/">Weekend Countdown</a></li> 912 <li><a href="/timers/retirement-countdown/">Retirement Countdown</a></li> 913 <li><a href="/timers/graduation-countdown/">Graduation Countdown</a></li> 914 <li><a href="/timers/super-bowl-countdown/">Super Bowl Countdown</a></li> 915 <li><a href="/timers/world-cup-countdown/">World Cup Countdown</a></li> 916 <li><a href="/timers/olympics-countdown/">Olympics Countdown</a></li> 917 </ul> 918 </div> 919 <div class="footer-column"> 920 <h3>Cooking Timers</h3> 921 <ul> 922 <li><a href="/timers/kitchen-timer/">Kitchen Timer</a></li> 923 <li><a href="/timers/pizza-timer/">Pizza Timer</a></li> 924 <li><a href="/timers/rice-timer/">Rice Timer</a></li> 925 <li><a href="/timers/cookie-timer/">Cookie Timer</a></li> 926 <li><a href="/timers/ramen-timer/">Ramen Timer</a></li> 927 <li><a href="/timers/turkey-timer/">Turkey Timer</a></li> 928 <li><a href="/timers/steak-timer/">Steak Timer</a></li> 929 <li><a href="/timers/sous-vide-timer/">Sous Vide Timer</a></li> 930 <li><a href="/timers/air-fryer-timer/">Air Fryer Timer</a></li> 931 <li><a href="/timers/smoker-timer/">Smoker Timer</a></li> 932 </ul> 933 </div> 934 <div class="footer-column"> 935 <h3>Fitness Timers</h3> 936 <ul> 937 <li><a href="/timers/interval-timer/">Interval Timer</a></li> 938 <li><a href="/timers/crossfit-timer/">CrossFit Timer</a></li> 939 <li><a href="/timers/wod-timer/">WOD Timer</a></li> 940 <li><a href="/timers/plank-timer/">Plank Timer</a></li> 941 <li><a href="/timers/gym-timer/">Gym Rest Timer</a></li> 942 <li><a href="/timers/rest-timer/">Rest Timer</a></li> 943 <li><a href="/timers/running-timer/">Running Timer</a></li> 944 <li><a href="/timers/sauna-timer/">Sauna Timer</a></li> 945 </ul> 946 </div> 947 <div class="footer-column"> 948 <h3>Focus & Study</h3> 949 <ul> 950 <li><a href="/timers/study-timer/">Study Timer</a></li> 951 <li><a href="/timers/writing-timer/">Writing Timer</a></li> 952 <li><a href="/timers/break-timer/">Break Timer</a></li> 953 <li><a href="/timers/90-minute-timer/">90 Minute Timer</a></li> 954 <li><a href="/timers/desk-timer/">Desk Timer</a></li> 955 <li><a href="/timers/reading-timer/">Reading Timer</a></li> 956 <li><a href="/timers/intermittent-fasting-timer/">Intermittent Fasting Timer</a></li> 957 </ul> 958 </div> 959 <div class="footer-column"> 960 <h3>Sleep & Wellness</h3> 961 <ul> 962 <li><a href="/timers/sleep-timer/">Sleep Timer</a></li> 963 <li><a href="/timers/nap-timer/">Nap Timer</a></li> 964 <li><a href="/timers/sleep-cycle-timer/">Sleep Cycle Timer</a></li> 965 <li><a href="/timers/tanning-timer/">Tanning Timer</a></li> 966 <li><a href="/timers/medication-reminder/">Medication Reminder</a></li> 967 <li><a href="/timers/shower-timer/">Shower Timer</a></li> 968 <li><a href="/timers/laundry-timer/">Laundry Timer</a></li> 969 </ul> 970 </div> 971 <div class="footer-column"> 972 <h3>Games & Party</h3> 973 <ul> 974 <li><a href="/timers/quiz-timer/">Quiz Timer</a></li> 975 <li><a href="/timers/jeopardy-timer/">Jeopardy Timer</a></li> 976 <li><a href="/timers/trivia-timer/">Trivia Timer</a></li> 977 <li><a href="/timers/board-game-timer/">Board Game Timer</a></li> 978 <li><a href="/timers/turn-timer/">Turn Timer</a></li> 979 <li><a href="/timers/confetti-timer/">Confetti Timer</a></li> 980 <li><a href="/timers/cleanup-timer/">Cleanup Timer</a></li> 981 <li><a href="/timers/potty-timer/">Potty Timer</a></li> 982 <li><a href="/timers/gaming-timer/">Gaming Timer</a></li> 983 </ul> 984 </div> 985 <div class="footer-column"> 986 <h3>Pomodoro Timers</h3> 987 <ul> 988 <li><a href="/timers/25-minute-pomodoro-timer/">25 Minute Pomodoro</a></li> 989 <li><a href="/timers/50-minute-pomodoro-timer/">50 Minute Pomodoro</a></li> 990 <li><a href="/timers/5-minute-pomodoro-break/">5 Minute Break</a></li> 991 <li><a href="/timers/10-minute-pomodoro-break/">10 Minute Break</a></li> 992 <li><a href="/timers/15-minute-pomodoro-break/">15 Minute Break</a></li> 993 </ul> 994 </div> 995 <div class="footer-column"> 996 <h3>Egg Timers</h3> 997 <ul> 998 <li><a href="/timers/cooking-timer/">Cooking Timer</a></li> 999 <li><a href="/timers/egg-timer/">Visual Egg Timer</a></li> 1000 <li><a href="/timers/soft-boiled-egg-timer/">Soft Boiled (3 min)</a></li> 1001 <li><a href="/timers/medium-boiled-egg-timer/">Medium Boiled (6 min)</a></li> 1002 <li><a href="/timers/hard-boiled-egg-timer/">Hard Boiled (9 min)</a></li> 1003 </ul> 1004 </div> 1005 <div class="footer-column"> 1006 <h3>Tea Timers</h3> 1007 <ul> 1008 <li><a href="/timers/tea-timer/">Tea Timer</a></li> 1009 <li><a href="/timers/green-tea-timer/">Green Tea Timer</a></li> 1010 <li><a href="/timers/black-tea-timer/">Black Tea Timer</a></li> 1011 <li><a href="/timers/white-tea-timer/">White Tea Timer</a></li> 1012 <li><a href="/timers/oolong-tea-timer/">Oolong Tea Timer</a></li> 1013 <li><a href="/timers/herbal-tea-timer/">Herbal Tea Timer</a></li> 1014 <li><a href="/timers/chamomile-tea-timer/">Chamomile Tea Timer</a></li> 1015 <li><a href="/timers/earl-grey-tea-timer/">Earl Grey Tea Timer</a></li> 1016 <li><a href="/timers/chai-tea-timer/">Chai Tea Timer</a></li> 1017 <li><a href="/timers/matcha-tea-timer/">Matcha Tea Timer</a></li> 1018 <li><a href="/timers/pu-erh-tea-timer/">Pu-erh Tea Timer</a></li> 1019 </ul> 1020 </div> 1021 <div class="footer-column"> 1022 <h3>Breathing & Meditation</h3> 1023 <ul> 1024 <li><a href="/timers/breathing-timer/">Breathing Timer</a></li> 1025 <li><a href="/timers/box-breathing-timer/">Box Breathing</a></li> 1026 <li><a href="/timers/478-breathing-timer/">4-7-8 Breathing</a></li> 1027 <li><a href="/timers/meditation-timer/">Meditation Timer</a></li> 1028 <li><a href="/timers/5-minute-meditation-timer/">5 Min Meditation</a></li> 1029 <li><a href="/timers/10-minute-meditation-timer/">10 Min Meditation</a></li> 1030 <li><a href="/timers/20-minute-meditation-timer/">20 Min Meditation</a></li> 1031 </ul> 1032 </div> 1033 </div> 1034 <div class="footer-bottom"> 1035 <p><a href="/timers/" class="browse-all-link">Browse All Timers</a> · <a href="/calculators/" class="browse-all-link">Browse All Calculators</a> · <a href="/tools/" class="browse-all-link">Classroom Tools</a> · <a href="/chrome/" class="browse-all-link">Chrome Extensions</a></p> 1036 <p>Visual Timer - Free online countdown timers for classrooms, presentations, and productivity.</p> 1037 <p class="footer-contact"><button class="contact-btn" id="contact-btn">Contact Us</button></p> 1038 <p class="footer-links"><a href="/about/">About</a> · <a href="/faq/">FAQ</a> · <a href="/sitemap/">Sitemap</a> · <a href="/privacy/">Privacy</a> · <a href="/terms/">Terms</a></p> 1039 1040 <p class="footer-coffee"><a href="https://buymeacoffee.com/visualtimer.com" target="_blank" rel="noopener">â Buy me a coffee</a> â keep these timers free & ad-light</p> 1041 1042 <p class="footer-credit">Developed by <a href="https://applorium.com" target="_blank" rel="noopener">Applorium Ltd</a></p> 1043 </div> 1044 </div> 1045</footer> 1046 1047<div class="contact-modal" id="contact-modal"> 1048 <div class="contact-modal-content"> 1049 <button class="contact-modal-close" id="contact-modal-close">×</button> 1050 <h2>Contact Us</h2> 1051 <form action="https://formspree.io/f/mdakrvpq" method="POST" class="contact-form"> 1052 <label> 1053 Your email: 1054 <input type="email" name="email" required> 1055 </label> 1056 <label> 1057 Your message: 1058 <textarea name="message" rows="5" required></textarea> 1059 </label> 1060 <button type="submit" class="contact-submit">Send</button> 1061 </form> 1062 </div> 1063</div> 1064
1065<script> 1066(function() { 1067 var btn = document.getElementById('contact-btn'); 1068 var modal = document.getElementById('contact-modal'); 1069 var close = document.getElementById('contact-modal-close'); 1070 1071 if (btn && modal) { 1072 btn.addEventListener('click', function() { 1073 modal.classList.add('open'); 1074 }); 1075 close.addEventListener('click', function() { 1076 modal.classList.remove('open'); 1077 }); 1078 modal.addEventListener('click', function(e) { 1079 if (e.target === modal) { 1080 modal.classList.remove('open'); 1081 } 1082 }); 1083 } 1084})(); 1085</script>
1085 1086 1087
1088<script> 1089(function () { 1090 // Buy Me a Coffee floating widget â shown only every Nth page load, so it stays 1091 // low-key. The header coffee icon + footer link are always available regardless. 1092 var EVERY = 30; // show on the 30th, 60th, 90th ... page load 1093 var ls; 1094 try { ls = window.localStorage; } catch (e) { return; } // no storage â stay hidden 1095 var n = (parseInt(ls.getItem('vt_bmc_count'), 10) || 0) + 1; 1096 try { ls.setItem('vt_bmc_count', String(n)); } catch (e) {} 1097 if (n % EVERY !== 0) return; // not this load 1098 1099 var s = document.createElement('script'); 1100 s.setAttribute('data-name', 'BMC-Widget'); 1101 s.setAttribute('data-cfasync', 'false'); 1102 s.src = 'https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js'; 1103 s.setAttribute('data-id', 'visualtimer.com'); 1104 s.setAttribute('data-description', 'Support me on Buy me a coffee!'); 1105 s.setAttribute('data-message', "Hi, and thanks for using visualtimer.com! It's a small independent project, free for everyone. If it's been useful, a coffee helps cover the bills and keeps new timers coming. â"); 1106 s.setAttribute('data-color', '#FF5F5F'); 1107 s.setAttribute('data-position', 'Right'); 1108 s.setAttribute('data-x_margin', '18'); 1109 s.setAttribute('data-y_margin', '18'); 1110 document.body.appendChild(s); 1111})(); 1112</script>
1112 1113 1114 1115 1116
1117<script> 1118(function () { 1119 // Platform is detected once in theme-init.html (runs in <head>). 1120 var d = document.documentElement; 1121 var isApple = d.classList.contains('is-ios') || d.classList.contains('is-mac'); 1122 var isAndroid = d.classList.contains('is-android'); 1123 if (!isApple && !isAndroid) return; 1124 1125 function init() { 1126 // Guard against double-insert â both our own wrap and the static 1127 // app-top-link.html badge, which pages opting into a specific app render 1128 // server-side. Either one means a badge is already on the page. 1129 if (document.querySelector('.app-cta-wrap, .app-top-link-wrap')) return; 1130 var section = document.querySelector('.ios-app-section'); 1131 if (!section) return; 1132 1133 // Pick the store link that matches the visitor's platform. On Apple, take the 1134 // App Store link (never the Play pill, which also carries .app-store-btn). 1135 var url, isPlay = false; 1136 if (isApple) { 1137 // Prefer the explicit hook; fall back to the legacy pill class used on other app pages. 1138 var appleBtn = section.querySelector('[data-store="apple"], .app-store-btn:not(.play-store-btn)'); 1139 if (appleBtn) url = appleBtn.getAttribute('href'); 1140 } else { 1141 var playBtn = section.querySelector('[data-store="play"], .play-store-btn'); 1142 if (playBtn) { url = playBtn.getAttribute('href'); isPlay = true; } 1143 } 1144 if (!url) return; // e.g. an Android visitor on an iOS-only app page 1145 1146 // Anchor to the first *visible* title. If a page ever carries a 1147 // visually-hidden <h1> for SEO before the real hero title, skip it so the 1148 // badge always lands under the visible heading, consistently across pages. 1149 var h1 = document.querySelector('h1:not(.visually-hidden)') || document.querySelector('h1'); 1150 if (!h1) return; 1151 // Anchor below the subtitle if the title has one, otherwise below the h1. 1152 var anchor = h1; 1153 var sib = h1.nextElementSibling; 1154 if (sib && /(^|\s)(subtitle|wc-sub|sub)(\s|$)/.test(sib.className || '')) anchor = sib; 1155 1156 var wrap = document.createElement('div'); 1157 wrap.className = 'app-cta-wrap'; 1158 var a = document.createElement('a'); 1159 a.href = url; 1160 a.target = '_blank'; 1161 a.rel = 'noopener'; 1162 1163 a.className = 'app-cta'; 1164 var img = document.createElement('img'); 1165 if (isPlay) { 1166 // Google's official "Get it on Google Play" badge. 1167 img.src = '/images/get-it-on-google-play.png'; 1168 img.alt = 'Get it on Google Play'; 1169 img.width = 124; 1170 img.height = 48; 1171 } else { 1172 // Apple's official "Download on the App Store" badge (the same badge Apple 1173 // uses for iOS and macOS since the Mac App Store lockup was retired in 2021). 1174 img.src = '/images/download-on-app-store.svg'; 1175 img.alt = 'Download on the App Store'; 1176 img.width = 150; 1177 img.height = 50; 1178 } 1179 a.appendChild(img); 1180 wrap.appendChild(a); 1181 anchor.parentNode.insertBefore(wrap, anchor.nextSibling); 1182 } 1183 1184 if (document.readyState === 'loading') { 1185 document.addEventListener('DOMContentLoaded', init); 1186 } else { 1187 init(); 1188 } 1189})(); 1190</script>
1190 1191 1192 1193 1194 1195 1196
1196<script src="/app.js"></script>
1196 1197 1198</body> 1199</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.