Ambiente Moment.js
Ambiente interativo para experimentar a API de data e hora do Moment.js – formatar, analisar e manipular datas com saída ao vivo
Entrada
Saída
Leia-me
O que é Moment.js?
Moment.js é uma biblioteca JavaScript amplamente utilizada para analisar, validar, manipular e formatar datas. Antes que alternativas modernas surgissem, o Moment.js era o padrão de fato para o tratamento de datas em aplicações JavaScript. Ele fornece uma API limpa e encadeável que torna o trabalho com datas intuitivo e direto. Embora existam bibliotecas mais recentes como date-fns e Luxon, o Moment.js continua amplamente usado em bases de código legadas e ainda é mantido ativamente para correções de bugs. Entender o Moment.js é essencial para desenvolvedores que trabalham com projetos existentes que dependem dele.
Por que usar uma biblioteca de manipulação de datas?
O objeto nativo Date do JavaScript é notoriamente difícil de usar. Ele tem comportamento inconsistente entre navegadores, indexação de meses confusa (0-11 ao invés de 1-12), opções limitadas de formatação e nenhum suporte nativo a fusos horários. Bibliotecas de datas como o Moment.js resolvem esses problemas ao fornecer uma API consistente e bem documentada. Elas lidam automaticamente com casos extremos como transições de horário de verão, anos bissextos e formatação específica de localidade, poupando os desenvolvedores de escrever lógica de datas propensa a erros do zero.
Descrição da ferramenta
O Moment.js Playground é um ambiente interativo baseado no navegador para experimentar com a biblioteca Moment.js. Escreva e execute código JavaScript diretamente no editor com acesso total ao Moment.js e ao Moment Timezone. O playground executa automaticamente seu código enquanto você digita (com debounce) e exibe toda a saída do console em um painel estilo terminal abaixo. É perfeito para aprender Moment.js, testar strings de formatação de datas, depurar cálculos de datas e prototipar lógica relacionada ao tempo sem configurar um ambiente de desenvolvimento.
Exemplos
Formate a data atual:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Saída: 30 de dezembro de 2025
console.log(now.format("dddd, h:mm A"));
// Saída: segunda-feira, 3:45 PMAnalise diferentes formatos de data:
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // quinta-feira
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (indexado a 0)Calcule tempo relativo:
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // há 3 dias
console.log(future.fromNow()); // em 14 dias
console.log(past.from(future)); // há 17 diasAritmética de datas:
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31Trabalhe com durações:
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 dias
console.log(duration.asWeeks() + " weeks"); // 52 semanas
console.log(duration.humanize()); // um anoCompare datas:
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueTrabalhe com fusos horários:
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));Recursos
- Biblioteca completa Moment.js: Acesse todas as funções do Moment.js, incluindo análise, formatação, manipulação e comparação
- Suporte a fusos horários: Moment Timezone está pré-carregado para trabalhar com fusos horários em todo o mundo
- 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 abrir as 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
- Aprendendo Moment.js: Experimente a API e veja resultados imediatamente sem configurar um projeto
- Teste de strings de formatação: Experimente diferentes tokens de formatação para obter a saída de data exata que você precisa
- Depuração de cálculos de datas: Teste aritmética de datas complexas antes de implementá-las em sua aplicação
- Conversões de fusos horários: Converta rapidamente horários entre diferentes fusos horários
- Manutenção de código legado: Teste trechos de código Moment.js ao manter aplicações existentes
Tokens de Formatação Comuns
| Token | Descrição | Exemplo |
|---|---|---|
YYYY |
ano de 4 dígitos | 2025 |
YY |
ano de 2 dígitos | 25 |
MM |
mês de 2 dígitos | 01-12 |
MMM |
nome abreviado do mês | Jan, Feb |
MMMM |
nome completo do mês | January |
DD |
dia de 2 dígitos | 01-31 |
Do |
dia com ordinal | 1st, 2nd, 3rd |
dddd |
nome completo do dia da semana | Monday |
ddd |
nome abreviado do dia da semana | 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 (maiúsculas) | AM, PM |
a |
am/pm (minúsculas) | am, pm |
z |
abreviação do fuso horário | EST, PST |
Z |
deslocamento do fuso horário | +05:00 |
Referência de Métodos Comuns
| Método | Descrição | Exemplo |
|---|---|---|
moment() |
Cria o momento atual | moment() |
format(string) |
Formata para string | moment().format("YYYY-MM-DD") |
add(n, unit) |
Adiciona tempo | moment().add(7, "days") |
subtract(n, unit) |
Subtrai tempo | moment().subtract(1, "month") |
startOf(unit) |
Início da unidade | moment().startOf("week") |
endOf(unit) |
Fim da unidade | moment().endOf("month") |
fromNow() |
Tempo relativo | moment("2025-01-01").fromNow() |
diff(moment) |
Diferença | momentA.diff(momentB, "days") |
isBefore(moment) |
É anterior a | momentA.isBefore(momentB) |
isAfter(moment) |
É posterior a | momentA.isAfter(momentB) |
isSame(moment, unit) |
É o mesmo | momentA.isSame(momentB, "month") |
isValid() |
Verifica validade | moment("invalid").isValid() |
clone() |
Cria cópia | moment().clone() |
tz(zone) |
Converte fuso horário | moment().tz("America/New_York") |
Unidades de Tempo
Moment.js suporta estas unidades de tempo para as operações add, subtract, startOf, endOf e diff:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms