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

  1. 1Insira uma duração, milissegundos ou em formato humano (por exemplo, 2h 30m 15s).
  2. 2Visualize a duração convertida para todas as unidades de tempo: segundos, minutos, horas, dias, semanas.
  3. 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
Conheça o Zenovay

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.