Calculadora de Duraciones

Convierte duraciones de tiempo entre segundos, minutos, horas, días y semanas. Analiza duraciones en formato legible como "2h 30m", formatea milisegundos y genera cadenas de duración ISO 8601.

Duration Breakdown

Weeks

0

Days

0

Hours

2

Minutes

30

Seconds

15

Millisec

0

All Formats

Human readable

2h 30m 15s

ISO 8601

PT2H30M15S

HH:MM:SS

2:30:15

Total seconds

9015

Total milliseconds

9015000

Total minutes

150.2500

Total hours

2.504167

Total days

0.10434028

Cómo usar Calculadora de Duraciones

  1. 1Ingresa una duración, milisegundos o en formato legible (ej., 2h 30m 15s).
  2. 2Ver la duración convertida a todas las unidades de tiempo: segundos, minutos, horas, días, semanas.
  3. 3Copia la cadena de duración ISO 8601 o el formato legible para usar en tu código.
ZenovayAnalytics

Descubre qué hacen de verdad tus visitantes.

  • Seguimiento de visitantes en tiempo real
  • Privacidad primero, sin aviso de cookies
  • Configurado en dos minutos
Descubre Zenovay

Preguntas frecuentes

¿Qué es el formato de duración ISO 8601?
El formato de duración ISO 8601 usa el patrón PnYnMnDTnHnMnS, donde P es el designador (período) y T separa las partes de fecha de las de hora. Ejemplos: PT30S = 30 segundos, PT5M30S = 5 minutos 30 segundos, PT2H = 2 horas, P1DT12H = 1 día 12 horas, P1Y2M3DT4H5M6S = 1 año 2 meses 3 días 4 horas 5 minutos 6 segundos. Se usa en: HTML5 <time datetime="PT1H30M">, XML Schema, API REST (Google Calendar, Stripe), duraciones RFC 3339, API Temporal de JavaScript.
¿Cómo convierto milisegundos a duración legible por humanos?
Divida y tome los restos. Dado ms en milisegundos: días = Math.floor(ms / 86400000), horas = Math.floor((ms % 86400000) / 3600000), minutos = Math.floor((ms % 3600000) / 60000), segundos = Math.floor((ms % 60000) / 1000), ms_restantes = ms % 1000. JavaScript: formatDuration = new Intl.DurationFormat("es", {style: "long"}).format({hours, minutes, seconds}) — parte de la API Intl.DurationFormat. Alternativa: dayjs.duration(ms).humanize() o date-fns formatDuration().
¿Cómo se almacenan las duraciones en bases de datos?
Opciones: entero (segundos o milisegundos) — más simple, aritmética fácil, sin problemas de zona horaria. Tipo INTERVAL de PostgreSQL: INTERVAL '2 hours 30 minutes' — admite aritmética (+, -), funciones EXTRACT(), JUSTIFY_HOURS(). Tipo TIME de MySQL: -838:59:59 a 838:59:59 — bueno para duraciones cortas, malo para muy largas. Cadena ISO 8601: VARCHAR — legible pero requiere análisis para aritmética. Para análisis: almacene como entero de segundos/milisegundos y formatee para mostrar en la capa de aplicación.
¿Cuál es la diferencia entre duración e intervalo?
Duración: una cantidad fija de tiempo, independiente de cualquier punto de referencia. «2 horas» siempre son 7.200 segundos. Intervalo: el tiempo entre dos puntos específicos, afectado por el horario de verano, los segundos intercalados y las irregularidades del calendario. Agregar «1 mes» al 31 de enero da el 28 de febrero (o 29), no un número fijo de días. En código: use Duration para tiempos de espera, retrasos, temporización de animaciones. Use Interval (dos fechas y horas) para eventos de calendario, períodos de facturación o cualquier cálculo relativo al calendario. ISO 8601 cubre ambos: PT2H (duración) vs 2024-01-01/2024-12-31 (intervalo).
¿Cómo calculo el tiempo transcurrido en JavaScript?
API Performance (más precisa): const start = performance.now(); ... const elapsed = performance.now() - start; — devuelve milisegundos con precisión submilisegundo, no afectada por cambios del reloj del sistema. Date.now(): const start = Date.now(); — milisegundos desde el epoch Unix, puede saltar si cambia la hora del sistema. console.time/timeEnd: console.time("etiqueta"); ... console.timeEnd("etiqueta"); — integrado para mediciones rápidas. Para procesos muy largos (horas/días): almacene timestamps ISO 8601 en una base de datos y réstelos al recuperarlos.