O que é date-fns?

date-fns é uma biblioteca moderna de utilitários de datas para JavaScript que fornece ferramentas abrangentes, consistentes e confiáveis para trabalhar com datas em JavaScript. Diferente do objeto nativo Date do JavaScript, que possui muitas peculiaridades e inconsistências, o date-fns oferece uma abordagem modular e funcional para manipulação de datas. É tree‑shakeable, ou seja, você inclui apenas as funções que realmente usa, mantendo o tamanho do bundle mínimo. A biblioteca suporta mais de 200 funções que cobrem tudo, desde formatação e análise até comparação, manipulação e localização de datas.

Por que usar um playground do date-fns?

Trabalhar com datas em JavaScript pode ser complicado — fusos horários, padrões de formatação e aritmética de datas frequentemente geram resultados inesperados. Um ambiente de playground permite que você experimente as funções do date-fns em tempo real, veja a saída imediatamente e aprenda a API sem precisar configurar um projeto completo. É perfeito para testar strings de formatação, depurar cálculos de datas ou prototipar rapidamente lógica de datas antes de integrá‑la à sua aplicação.

Descrição da ferramenta

O date-fns Playground é um ambiente de codificação interativo que permite escrever e executar código JavaScript com a biblioteca completa do date-fns pré‑carregada. Toda a biblioteca date-fns está disponível através do objeto dateFns, oferecendo acesso a todas as mais de 200 funções. O código é executado automaticamente enquanto você digita (com debounce), e todas as saídas de console.log, console.warn e console.error aparecem no terminal embutido abaixo do editor. Isso o torna ideal para aprender date-fns, testar operações com datas e experimentar diferentes opções de formatação.

Exemplos

Formate a data atual:

const now = new Date();
console.log(dateFns.format(now, "MMMM do, yyyy"));
// Saída: 30 de dezembro de 2025

Calcule dias entre duas datas:

const start = new Date(2025, 0, 1);
const end = new Date(2025, 11, 31);
console.log(dateFns.differenceInDays(end, start) + " days");
// Saída: 364 dias

Adicione tempo a uma data:

const today = new Date();
const nextWeek = dateFns.addWeeks(today, 1);
const nextMonth = dateFns.addMonths(today, 1);
console.log("Próxima semana:", dateFns.format(nextWeek, "yyyy-MM-dd"));
console.log("Próximo mês:", dateFns.format(nextMonth, "yyyy-MM-dd"));

Verifique se uma data está no passado ou no futuro:

const date = new Date(2024, 5, 15);
console.log("É passado?", dateFns.isPast(date));
console.log("É futuro?", dateFns.isFuture(date));

Analise uma string de data:

const parsed = dateFns.parse("25/12/2025", "dd/MM/yyyy", new Date());
console.log(dateFns.format(parsed, "EEEE, MMMM do, yyyy"));
// Saída: quinta-feira, 25 de dezembro de 2025

Recursos

  • Biblioteca completa do date-fns: Acesse todas as mais de 200 funções do date-fns através do objeto dateFns
  • Execução de código ao vivo: O código é executado automaticamente enquanto você digita, com debounce inteligente
  • Terminal embutido: Visualize a saída do console instantaneamente sem precisar das ferramentas de desenvolvedor do navegador
  • Realce de sintaxe: Realce de sintaxe JavaScript para melhor legibilidade do código
  • Tratamento de erros: Erros em tempo de execução são exibidos claramente na saída do terminal

Casos de uso

  • Aprender date-fns: Experimente diferentes funções e veja os resultados imediatamente sem configurar um projeto
  • Teste de formatação de datas: Experimente diferentes strings de formatação para encontrar o padrão de saída exato que você precisa
  • Prototipagem de cálculos de datas: Teste aritmética de datas complexa, como adicionar dias úteis, encontrar intervalos ou comparar datas
  • Depuração de lógica de datas: Isole e teste trechos de código relacionados a datas dos seus projetos
  • Conversões rápidas de datas: Converta entre formatos de datas ou calcule diferenças de tempo instantaneamente

Funções comuns do date-fns

Função Descrição Exemplo
format Formata uma data para uma string dateFns.format(date, "yyyy-MM-dd")
parse Analisa uma string para uma data dateFns.parse("2025-01-01", "yyyy-MM-dd", new Date())
addDays Adiciona dias a uma data dateFns.addDays(date, 7)
subMonths Subtrai meses de uma data dateFns.subMonths(date, 3)
differenceInDays Obtém a quantidade de dias entre datas dateFns.differenceInDays(dateA, dateB)
isAfter Verifica se a data está após outra dateFns.isAfter(dateA, dateB)
isBefore Verifica se a data está antes de outra dateFns.isBefore(dateA, dateB)
startOfMonth Obtém o primeiro dia do mês dateFns.startOfMonth(date)
endOfYear Obtém o último instante do ano dateFns.endOfYear(date)
formatDistance Diferença de tempo em formato legível dateFns.formatDistance(dateA, dateB)

Referência de Tokens de Formatação

Token Descrição Exemplo
yyyy Ano com 4 dígitos 2025
MM Mês com 2 dígitos 01-12
MMMM Nome completo do mês January
dd Dia com 2 dígitos 01-31
do Dia com ordinal 1st, 2nd, 3rd
EEEE Nome completo do dia da semana Monday
EEE Dia da semana abreviado Mon
HH Hora em formato 24h 00-23
hh Hora em formato 12h 01-12
mm Minutos 00-59
ss Segundos 00-59
a AM/PM AM, PM