Calculadora de Duração
Converta durações de tempo entre segundos, minutos, horas, dias e semanas. Analise durações legíveis por humanos como "2h 30m", formate milissegundos e gere strings de duração 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
Como Usar Calculadora de Duração
- 1Insira uma duração, milissegundos ou em formato humano (por exemplo, 2h 30m 15s).
- 2Visualize a duração convertida para todas as unidades de tempo: segundos, minutos, horas, dias, semanas.
- 3Copie a string de duração ISO 8601 ou o formato legível por humanos para usar em seu código.
ZenovayAnalytics
Saiba o que seus visitantes realmente fazem.
- Acompanhamento de visitantes em tempo real
- Privacidade em primeiro lugar, sem banner de cookies
- Configurado em dois minutos
Ferramentas Relacionadas
Conversor de Cores
Converta cores entre os formatos HEX, RGB, HSL e CMYK. Visualização ao vivo com seletor de cores.Conversor de Unidades
Converta entre unidades de comprimento, peso, temperatura, área, volume, velocidade e muito mais.Conversor de Base Numérica
Converta números entre as bases binária, octal, decimal e hexadecimal.Conversor de Timestamp Unix
Converta entre timestamps Unix e datas legíveis por humanos. Mostre ISO 8601, UTC, hora local e hora relativa.Perguntas Frequentes
O que é o formato ISO 8601 de duração?▾
O formato de duração ISO 8601 usa o padrão PnYnMnDTnHnMnS, onde P é o designador (Período), T separa as partes de data e hora. Exemplos: PT30S = 30 segundos, PT5M30S = 5 minutos 30 segundos, PT2H = 2 horas, P1DT12H = 1 dia 12 horas, P1Y2M3DT4H5M6S = 1 ano 2 meses 3 dias 4 horas 5 minutos 6 segundos. Usado em: HTML5 <time datetime="PT1H30M">, XML Schema, APIs REST (Google Calendar, Stripe), durações RFC 3339, API Temporal do JavaScript.
Como faço para converter milissegundos em duração legível para humanos?▾
Divida e pegue os restos. Dados milissegundos ms: dias = Math.floor(ms / 86400000), horas = Math.floor((ms % 86400000) / 3600000), minutos = Math.floor((ms % 3600000) / 60000), segundos = Math.floor((ms % 60000) / 1000), ms_restante = ms % 1000. JavaScript: formatDuration = new Intl.DurationFormat("en", {style: "long"}).format({hours, minutes, seconds}) — parte da API Intl.DurationFormat (proposta Stage 3). Alternativa: dayjs.duration(ms).humanize() ou date-fns formatDuration().
Como as durações são armazenadas em bancos de dados?▾
Opções: Inteiro (segundos ou milissegundos) — mais simples, aritmética fácil, sem problemas de fuso horário. Tipo PostgreSQL INTERVAL: INTERVAL '2 horas 30 minutos' — suporta aritmética (+, -), funções EXTRACT(), JUSTIFY_HOURS(). Tipo TIME do MySQL: -838:59:59 a 838:59:59 — bom para durações curtas, ruim para muito longas. String ISO 8601: VARCHAR — legível para humanos mas exige análise para aritmética. Para análises: armazene como inteiro de segundos/milissegundos e formatar para exibição na camada de aplicação.
Qual é a diferença entre duração e intervalo?▾
Duração: uma quantidade fixa de tempo, independente de qualquer ponto de referência. "2 horas" sempre será 7.200 segundos. Intervalo: o tempo entre dois pontos específicos — afetado por horário de verão, segundos bissextos, e irregularidades do calendário. Adicionar "1 mês" a 31 de janeiro resulta em 28 de fevereiro (ou 29), não em um número fixo de dias. No código: use Duração para coisas como timeouts, atrasos, tempo de animação. Use Intervalo (duas datas/horas) para eventos do calendário, períodos de cobrança, ou qualquer cálculo relativo ao calendário. ISO 8601 cobre ambos: PT2H (duração) vs 2024-01-01/2024-12-31 (intervalo).
Como faço para calcular o tempo decorrido em JavaScript?▾
API Performance (mais precisa): const start = performance.now(); ... const elapsed = performance.now() - start; — retorna milissegundos com precisão sub-milissegundo, não é afetada por mudanças de relógio do sistema. Date.now(): const start = Date.now(); — milissegundos desde época Unix, pode saltar se a hora do sistema mudar. console.time/timeEnd: console.time("label"); ... console.timeEnd("label"); — built-in para medições rápidas. Para processos muito longos (horas/dias): armazene carimbos de tempo ISO 8601 em um banco de dados e subtraia ao recuperar.