Contagem regressiva entre duas datas
Da meia-noite UTC de 1º de janeiro de 2026 até 01:01:01 de 2 de janeiro há 1 dia, 1 hora, 1 minuto e 1 segundo, ou 90061 segundos. Informe duas datas com horário e fuso e receba a contagem completa. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Data e hora ISO-8601 de início
- 2026-01-01T00:00:00Z
- Data e hora ISO-8601 de fim
- 2026-01-02T01:01:01Z
- Segundos de época de origem
- 1.767.225.600
- Segundos de época de destino
- 1.767.315.661
- Segundos totais
- 90.061
- Dias
- 1
Planejadores de eventos, páginas de lançamento de produto, contagens de provas e painéis de SLA precisam da mesma resposta clara: quantos dias, horas, minutos e segundos restam entre dois instantes conhecidos. Esta calculadora de contagem regressiva entre duas datas aceita um par de datas e horas ISO-8601, valida cada dia civil e cada campo de relógio pelas regras gregorianas, converte ambos os lados em segundos absolutos UTC com aritmética inteira pura e devolve um restante estruturado que as interfaces podem renderizar sem reimplementar anos bissextos ou deslocamentos de fuso.
Escolher from e to ISO e quais formatos são aceitos
Envie dois campos string chamados from e to. Cada valor deve ser uma data e hora civil ISO-8601: ano de quatro dígitos, mês e dia, opcionalmente seguidos de hora do dia com horas, minutos e segundos. Você pode acrescentar uma parte fracionária de segundo; o motor aceita por compatibilidade e trunca para segundos inteiros nos inteiros da contagem.
Um Z final significa UTC; um deslocamento numérico como mais zero dois dois-pontos zero zero ou menos zero cinco dois-pontos zero zero desloca os campos locais para UTC absoluto antes da subtração. Valores só de data como dois mil vinte e seis hífen zero seis hífen quinze são tratados como meia-noite UTC para que limites de dia simples funcionem sem inventar hora.
Anos limitam-se de um a nove mil novecentos e noventa e nove, meses de um a doze, e os dias devem existir naquele mês, incluindo 29 de fevereiro em anos bissextos quando aplicável. Horas vão de zero a vinte e três e minutos e segundos de zero a cinquenta e nove; qualquer valor fora desses intervalos é entrada inválida em vez de rolagem silenciosa.
Usos comuns e limites práticos
Chame a ferramenta gratuita de contagem regressiva entre duas datas no navegador para páginas de lançamento, timers de casamento, demos de sala de aula e scripts de suporte sem instalar bibliotecas de data ou bases de fuso. Combine com contadores de dias úteis quando só importam dias de semana e feriados, ou com ferramentas de comprimento de mês ao validar primeiro campos civis antes de montar um carimbo de tempo completo.
Mantenha expectativas honestas: este produto mede o tempo civil decorrido entre dois instantes absolutos após aplicar deslocamentos explícitos; não agenda notificações, não carrega calendários públicos de feriados nem inventa o agora do relógio de parede para você. As entradas seguem as mesmas regras de retenção de outros itens parse de KIT.
Casos de uso
Contagens de lançamento e marketing
Páginas de destino definem from como abertura da campanha e to como ida ao ar, e renderizam dias, horas, minutos e segundos até o lançamento sem bibliotecas de data no cliente.
Perguntas frequentes
O que acontece se uma data e hora for inválida?
Forma ISO ruim, dias civis impossíveis e campos de relógio fora do intervalo são rejeitados e não cobrados.
A calculadora de contagem regressiva entre duas datas é grátis?
A ferramenta do navegador roda grátis no seu dispositivo.
Isso usa o relógio de parede do servidor ou Date do JavaScript?
Não. Ambos os instantes vêm das suas cadeias de entrada. O motor usa aritmética gregoriana e de deslocamento pura sem Date, rede ou aleatoriedade, então os resultados são plenamente determinísticos.
O que acontece se a data final for anterior à inicial?
Dias, horas, minutos e segundos continuam positivos, mas o total em segundos fica negativo e o resultado é marcado como passado. Assim uma página pode mostrar atrasado em vez de faltam.
Posso digitar só a data, sem horário?
Sim. Uma data sozinha é lida como meia-noite UTC daquele dia, então os limites de dia funcionam sem que você precise inventar um horário.
Ferramentas relacionadas
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/countdown-between \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"from":"2026-01-01T00:00:00Z","to":"2026-01-02T01:01:01Z"}'const res = await fetch("https://api.kit.forhosting.com/date/countdown-between", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"from": "2026-01-01T00:00:00Z",
"to": "2026-01-02T01:01:01Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/countdown-between",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"from": "2026-01-01T00:00:00Z",
"to": "2026-01-02T01:01:01Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/countdown-between", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"from":"2026-01-01T00:00:00Z","to":"2026-01-02T01:01:01Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"from":"2026-01-01T00:00:00Z","to":"2026-01-02T01:01:01Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/countdown-between", 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
{
"from": "2026-01-01T00:00:00Z",
"to": "2026-01-02T01:01:01Z"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.countdown_between",
"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.
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. |
Notas técnicas
O caminho nunca toca o relógio de parede, aleatoriedade ou rede, de modo que as mesmas cadeias from e to sempre produzem o mesmo JSON em integração contínua e em produção. Formas inválidas, datas impossíveis como 30 de fevereiro e componentes de relógio fora do intervalo falham com invalid_input e não são cobradas.
Escolher from e to ISO e quais formatos são aceitos
Os aliases start, begin e start_date mapeiam para from; end, until, end_date e target mapeiam para to, alinhados à nomenclatura comum de formulários e API. Ambos os campos são obrigatórios: omitir qualquer um, enviar não-string ou só espaços gera invalid_input que nomeia o lado faltante.
Ler dias horas minutos segundos total_seconds e direção
Os campos days, hours, minutes e seconds são sempre não negativos e juntos recompõem o valor absoluto dessa diferença, de modo que um intervalo de um dia uma hora um minuto um segundo produz days um, hours um, minutes um e seconds um independentemente da direção. O campo total_seconds é a diferença com sinal to menos from: positiva quando o fim é posterior, zero quando os instantes coincidem e negativa quando o fim é anterior. As flags is_past e is_zero, e o rótulo de direção forward, backward ou zero, permitem que painéis escolham textos como restante versus atrasado sem rederivar o sinal. A cadeia formatada une as quatro partes em uma linha compacta como one d one h one m one s para exibição rápida, enquanto method é sempre countdown_between para roteadores e testes dourados.
Uso da API, preços, fluxos de produto e limites práticos
Envie um corpo JSON com os campos string obrigatórios from e to em forma ISO-8601. Use a API pré-paga quando um site de marketing, sistema de bilheteria, plataforma de provas ou painel de operações precisar de um contrato estável sob saldo KIT a US$ 0,002 por item bem-sucedido; falhas de validação nunca consomem saldo após a rejeição do motor. Autores de SDK podem mapear days, hours, minutes e seconds direto em quatro dígitos de contagem e dirigir o estilo de atraso a partir de is_past com a mesma forma de resposta em cada ligação de idioma.
Casos de integração
Provas, eventos e prazos de inscrição
Sistemas de educação e bilheteria calculam o tempo restante até um prazo ISO fixo e alternam o texto da interface com is_past quando a inscrição encerrou.
Painéis de SLA e operações
Ferramentas de operações passam instantes de abertura do incidente e de resolução-alvo, armazenam total_seconds para ordenação e mostram restantes formatados em quadros de status.
Perguntas técnicas
Como obtenho uma contagem regressiva entre duas datas?
Envie JSON com from e to como datas e horas ISO-8601 (por exemplo from: "2026-01-01T00:00:00Z" e to: "2026-01-02T01:01:01Z"). A resposta inclui days, hours, minutes, seconds e total_seconds com sinal.
E se o fim for antes do início?
Os campos de desdobramento permanecem não negativos para o intervalo absoluto, total_seconds é negativo, is_past é verdadeiro e direction é backward para a interface mostrar atraso.