Conversor de duração ISO 8601 para segundos
Converta uma duração ISO 8601, como P3DT4H30M, em um total único de segundos. O conversor interpreta anos, meses, semanas, dias, horas, minutos e segundos e aplica comprimentos nominais explícitos: cada ano tem 365 dias e cada mês tem 30 dias.
Executar grátis
Como usa somente o texto informado, sem consultar calendário, fuso horário, data atual ou horário de verão, a mesma entrada sempre produz o mesmo resultado.
Como ler a estrutura ISO 8601
Uma duração ISO 8601 começa com P, seguida das unidades de data e, quando necessário, do separador T antes das unidades de tempo. P2W significa duas semanas, P3DT6H indica três dias e seis horas, e PT15M representa quinze minutos. A letra M tem dois sentidos: antes de T são meses; depois de T são minutos. O conversor reconhece anos, meses, semanas, dias, horas, minutos e segundos na ordem padrão. Também aceita fração decimal na menor unidade presente, com ponto ou vírgula. Informe a duração completa, sem comentários ao redor. A resposta repete a entrada normalizada, lista os componentes interpretados e fornece total_seconds. Durações vazias, designadores fora de ordem, números negativos, P ou PT isolados e textos estranhos são rejeitados. Essa validação rigorosa ajuda você a detectar dados malformados na integração, em vez de transformá-los silenciosamente em um número enganoso.
Entenda anos e meses nominais
Uma duração formada apenas por dias, horas, minutos ou segundos tem comprimento fixo. Anos e meses do calendário são diferentes: um mês real pode ter 28, 29, 30 ou 31 dias, e um ano pode ter 365 ou 366. A duração isolada não traz a data inicial necessária para resolver essa variação. Por isso, a ferramenta usa constantes nominais exibidas em toda resposta: 365 dias por ano e 30 dias por mês. Uma semana sempre tem sete dias; um dia tem 86,400 segundos; uma hora tem 3,600 segundos; e um minuto tem 60 segundos. O cálculo soma os componentes ponderados. Assim, um mês sempre acrescenta 2,592,000 segundos, independentemente do momento da execução. Essas premissas não descrevem um intervalo específico do calendário. Para medir segundos decorridos entre dois instantes reais, use uma diferença de data e hora com início e fim explícitos.
Use totais determinísticos com segurança
O total retornado é um número JSON inteiro de segundos. Frações ISO são aceitas apenas na menor unidade escrita e quando a aritmética resulta em um segundo inteiro. Portanto, PT0.5M vira 30 segundos, mas um valor que exigiria fração de segundo é rejeitado. Totais fora da faixa de inteiros seguros do JavaScript também são recusados, evitando uma precisão falsa. A saída serve para campos de banco de dados, validação de atrasos, configuração de timeout, simulações e testes repetíveis, desde que os sistemas compartilhem as premissas nominais declaradas. Guarde o objeto de premissas quando outra equipe puder interpretar meses como unidades dependentes do calendário. A API custa US$ 0,002 por solicitação, e a conversão pura também funciona no navegador. Nenhuma rede, relógio atual, aleatoriedade ou objeto Date participa do resultado; entradas idênticas geram sempre os mesmos componentes e segundos.
Casos de uso
Normalizar durações de API
Converta campos ISO 8601 recebidos em um inteiro antes de validar, comparar ou armazenar.
Criar testes repetíveis
Gere totais esperados estáveis sem depender de data inicial, fuso horário ou calendário atual.
Revisar configurações
Confira retenções, atrasos e timeouts em notação ISO, com as premissas nominais ao lado.
Perguntas frequentes
Qual é a duração de um ano neste conversor?
Cada ano equivale exatamente a 365 dias, ou 31,536,000 segundos.
Qual é a duração de um mês?
Cada mês equivale nominalmente a 30 dias, ou 2,592,000 segundos; nenhuma data inicial é usada.
M significa meses ou minutos?
M antes do separador T significa meses; depois de T, significa minutos.
Durações decimais são aceitas?
Sim, na menor unidade presente, se o total for um número inteiro seguro de segundos. Use ponto ou vírgula.
Quanto custa a API?
Cada solicitação à API custa US$ 0,002. A conversão interativa também funciona localmente no navegador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/date/iso-duration-to-seconds \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration":"P1Y2M3DT4H5M6S"}'const res = await fetch("https://api.kit.forhosting.com/date/iso-duration-to-seconds", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration": "P1Y2M3DT4H5M6S"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/iso-duration-to-seconds",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration": "P1Y2M3DT4H5M6S"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/iso-duration-to-seconds", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration":"P1Y2M3DT4H5M6S"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration":"P1Y2M3DT4H5M6S"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/iso-duration-to-seconds", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"duration": "P1Y2M3DT4H5M6S"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.iso_duration_to_seconds",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 200 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |