Article — Milliseconds Converter
Milliseconds converter: the full guide to ms, seconds, minutes, hours
One millisecond is one thousandth of a second: 1 ms = 0.001 s. To go from milliseconds to seconds, divide by 1,000. To go to minutes, divide by 60,000. To go to hours, divide by 3,600,000. The factor is exact and never rounds, because the millisecond is an SI-derived unit pinned to the SI second, which since 1967 has been defined by 9,192,631,770 oscillations of caesium-133.
The millisecond is the unit that lives where human perception meets machine time. A single frame at 60 fps is 16.67 ms. An average visual reaction takes 250 ms. A transatlantic packet rides for roughly 90 ms. Everything between a CPU tick and a heartbeat lives in this scale.
What is a millisecond?
A millisecond, symbol ms, is exactly one thousandth of an SI second. The prefix "milli-" comes from Latin "mille" (thousand) and in the metric system always denotes 10⁻³. So 1 ms = 10⁻³ s = 0.001 s by definition, not by measurement.
The second is the SI base unit of time. Since 1967 the BIPM definition has been 9,192,631,770 periods of the radiation between two hyperfine levels of caesium-133. NIST and BIPM maintain primary cesium fountain clocks that realize this to one part in 10¹⁵ — less than one second of drift over the age of the universe.
NIST's NIST-F2 cesium fountain clock, operational since 2014, neither gains nor loses a second in 300 million years. The millisecond you see in a browser is downstream from this clock, distributed via NTP and GPS to the rest of the world.
Milliseconds to seconds, minutes, hours math
The whole milliseconds converter rests on three divisions. Milliseconds to seconds is divide by 1,000. Milliseconds to minutes is divide by 60,000. Milliseconds to hours is divide by 3,600,000. Each step composes the previous one: 60,000 is 1,000 × 60, and 3,600,000 is 60,000 × 60.
Going the other way is multiplication. Seconds × 1,000 gives milliseconds. Minutes × 60,000 gives ms. Hours × 3,600,000 gives ms. A day, useful for log scrubbing and uptime math, is 86,400,000 ms. JavaScript's Date.now() returns ms since January 1 1970, an integer that ticks up by exactly one every millisecond.
ms ÷ 1,000 = seconds ms ÷ 60,000 = minutesms ÷ 3,600,000 = hours seconds × 1,000 = msFor mental shortcuts, drop three zeros to go from ms to seconds. 7,500 ms is 7.5 s. 250,000 ms is 250 s, which is just over 4 minutes (250 ÷ 60 = 4.17). For larger values, drop six zeros first and you have a value in kiloseconds — useful when looking at logs that aggregate by the hour.
Milliseconds converter table
The table below covers the values most people actually search for, from a single frame budget to a full day.
- 1 ms = 0.001 s (1 CPU millisecond tick)
- 16.67 ms = 1 frame at 60 fps
- 100 ms = 0.1 s (perceptual instant threshold)
- 250 ms = 0.25 s (average human reaction)
- 500 ms = 0.5 s (half a second, two heartbeats)
- 1,000 ms = 1 s exactly
- 5,000 ms = 5 s (typical HTTP request budget)
- 60,000 ms = 1 minute
- 300,000 ms = 5 minutes (common JWT lifetime)
- 3,600,000 ms = 1 hour
- 86,400,000 ms = 1 day
Most cookie expiry values, session timeouts, and rate-limit windows are expressed in milliseconds in modern web frameworks. Express, Fastify, and Django all default to milliseconds for time-related options. The Unix epoch in milliseconds (Date.now() output) crossed the 1.7 trillion mark in 2024.
Milliseconds in programming and the web
The millisecond is the default time unit across nearly every programming language. JavaScript's setTimeout and setInterval take ms. Java's Thread.sleep() takes ms. Python's time.sleep() takes seconds but most async libraries take ms. Go's time.Millisecond is a named constant. The choice is practical: integer ms can represent any time from microseconds (with sub-precision tricks) to centuries inside a 64-bit integer.
Performance budgets are written in ms. Google's Core Web Vitals targets a Largest Contentful Paint under 2,500 ms, an Interaction to Next Paint under 200 ms, and a Cumulative Layout Shift score below 0.1. SLA contracts often specify p99 latency in ms — for example, "99% of requests must return under 100 ms".
Storing millisecond timestamps as JavaScript numbers (IEEE 754 double) gives precise integer values up to 2⁵³, which is well past the year 285,000 AD — safe. But adding fractional ms values can drift; for fractional time math, prefer integer microseconds or use a Decimal library. 0.1 + 0.2 ≠ 0.3 in binary float.
Browsers expose two ms timers. Date.now() returns whole ms from the Unix epoch, useful for timestamps. performance.now() returns fractional ms with microsecond precision from the page load, used for benchmarking. The W3C deliberately reduced performance.now() resolution to 100 µs in 2018 to mitigate Spectre-style timing attacks; some browsers further reduce it under cross-origin isolation rules.
Milliseconds in gaming and esports
Games live in the millisecond regime end to end. A 60 fps target gives the engine 16.67 ms to read input, simulate physics, run AI, render the frame, and submit it to the GPU. A 120 fps target halves that to 8.33 ms. VR headsets target 90 fps (11.11 ms) or higher to prevent motion sickness, with re-projection filling gaps when the engine cannot keep up.
Network latency adds more ms on top. A competitive player on a 30 ms connection has a 60 ms round trip to the server. Their opponent on a 80 ms connection sees the world 50 ms older. Server-side lag compensation rewinds the game state by the player's ping to interpret shots fairly, but the effect breaks down past about 150 ms.
Competitive shooters publish recommended frame and ping budgets. Valorant's tactical guide suggests 30 ms ping or lower for ranked play. Rocket League pros run on 240 Hz monitors (4.17 ms per frame). The marginal benefit drops off below human reaction time, but a 4 ms input lag still beats a 16 ms input lag in tight duels.
Milliseconds versus microseconds and nanoseconds
Below the millisecond, the SI system continues. One ms = 1,000 microseconds (µs). One µs = 1,000 nanoseconds (ns). Modern CPUs run at gigahertz, meaning each cycle is well under a nanosecond. A 3.0 GHz processor completes 3 billion cycles per second; each cycle takes 0.33 ns. The L1 cache hit takes around 1 ns, an L2 hit around 4 ns, a DRAM access 100 ns, and an SSD read 100 µs.
If a tool reports time in microseconds (1,000 µs = 1 ms) or nanoseconds (1,000,000 ns = 1 ms), divide by 1,000 or 1,000,000 to get milliseconds. CPU profiler outputs typically use ns; network tools use ms; logs use ms or s.
Above the millisecond, the chain continues to second, minute, hour, day, year. The day length is not constant — Earth's rotation varies by milliseconds depending on weather, glacial melt, and seismic events. The International Earth Rotation Service inserts leap seconds occasionally to keep civil time aligned with astronomical time; the most recent leap second was on December 31 2016, and the CGPM voted in 2022 to discontinue them after 2035.
Common milliseconds conversion mistakes
The most common error is mixing ms with cs (centiseconds, 1 cs = 10 ms) or with s. A device manual that says "100 ms" means 0.1 s; "100 cs" means 1.0 s. Centiseconds appear in sport timing — a 100 metre dash recorded as 9.85 s is 985 cs, or 9,850 ms. The medal might come down to 1 cs (10 ms), which is around half a typical reaction-time window.
A second pitfall is treating the millisecond as discrete when it is continuous. setTimeout(fn, 0) does not run instantly; the browser may delay by 4 ms or more for nested timers, and the event loop has its own scheduling. Use requestAnimationFrame for visual work and Promise microtasks for fast continuations.
A third mistake is confusing wall-clock ms with monotonic ms. Date.now() can jump backward if the system clock is adjusted. performance.now() always moves forward from page load. For elapsed-time calculations during a session, prefer the monotonic source; for timestamps stored to disk, use the wall clock.