Vá além dos recursos integrados de data e hora do JavaScript com uma dessas bibliotecas de substituição.
O suporte interno do JavaScript para manipulação de data é útil, mas pode ser difícil de usar. Operações complexas, como conversões de fuso horário e formatação de data, costumam ser desafiadoras.
Felizmente, estão disponíveis vários pacotes que tornam o trabalho com datas e horas em JavaScript menos estressante. Aqui, você aprenderá sobre alguns desses pacotes e como pode começar a trabalhar neles.
Quando se trata de trabalhar com datas e horas, o objeto Data JavaScript nativo tem funcionalidade limitada.
Moment.js, uma biblioteca JavaScript, introduziu muitos recursos indisponíveis no objeto Date nativo. Como resultado, tornou-se a biblioteca ideal para trabalhar com datas e horas.
Para instalar o Moment.js com npm, execute o seguinte comando no diretório do seu projeto:
npm instalar momento
Após a instalação, você pode importar o Moment.js para o seu projeto e realizar operações com a biblioteca:
const momento = exigir('momento');
const agora = momento();
const agoraString = agora.format('AAAA-MM-DD HH: mm: ss');
console.registro(`A data e hora atuais são ${nowString}`);
Este trecho de código importa a biblioteca Moment.js e cria um objeto moment usando a data e hora atuais com o momento() função. Em seguida, demonstra como formatar o objeto de data criado como uma string com o formatar() método, que usa um formato de data/hora como seu argumento.
Você também pode usar esta biblioteca para adicionar e subtrair intervalos de tempo:
const addTenMinutes = moment().add(10, 'minutos');
console.registro(`${addTenMinutes.format('h: mm a')}`);
const subtractDoisDias = moment().subtract(2, 'dias');
console.registro(`${subtractTwoDays.format('dddd, MMMM Faça AAAA')}`);
O programa registra duas variáveis no console, em formatos diferentes. O primeiro, addTenMinutes, contém o resultado da adição de 10 minutos à data e hora atuais. O segundo, subtrair dois dias, tem o valor de data e hora atual com dois dias subtraídos dele.
Moment.js pode executar outras operações, como verificar anos bissextos e converter de um formato de data para outro.
É importante observar que o Moment.js não é mais mantido por sua equipe principal de desenvolvedores. Os desenvolvedores aconselham usar uma alternativa como Luxon.js.
Luxon.js é uma biblioteca JavaScript robusta e mais moderna para trabalhar com datas. Uma alternativa ao Moment.js, aborda as limitações da biblioteca mais antiga, como mutabilidade.
Você pode instalar o Luxon com npm e depois importar seu Data hora classe em seu projeto Node.js usando o requerer() função:
const {DataHora} = exigir('luxão');
No Luxon, os objetos DateTime referem-se a instâncias de tempo que vão até milissegundos.
Você pode criar novos Data hora objetos e acessar seus componentes, como ano, mês, minuto e segundo:
const agora = DateTime.now();
const ano = agora.ano;
const minuto = agora.minuto;
const segundo = agora.segundo;
Este código cria um novo Data hora objeto que representa a data e hora atuais usando o agora() método. Em seguida, ele acessa os componentes dessa data usando o ano, minuto, e segundo propriedades.
Uma grande diferença entre Luxon.js e Moment.js é seu caráter imutável. Todos os objetos DateTime são imutáveis no Luxon, o que significa que você não pode modificar as propriedades DateTime. Em vez disso, você pode criar novas instâncias de DateTime a partir das existentes.
Por exemplo:
const agora = DateTime.now();
const amanhã = agora.mais({ dias: 1 });
Este código cria um novo Data hora objeto nomeado amanhã baseado no agora objeto, usando o mais método, passando-lhe um valor de 1 dia como argumento. O método plus cria um novo objeto DateTime com o número especificado de dias adicionados ao objeto original.
Outra vantagem do Luxon.js é seu suporte confiável ao fuso horário, essencial para trabalhar com datas e horas em aplicativos da web modernos. A biblioteca usa a API de internacionalização em navegadores modernos para fornecer suporte de fuso horário preciso.
No entanto, uma das desvantagens do Luxon.js são os recursos limitados da comunidade.
Date-fns é uma biblioteca JavaScript muito leve projetada para trabalhar com datas e horas. Ele se baseia no objeto JavaScript nativo.
Data-fns usa técnicas de programação funcional e incorpora um recurso imutável, que simplifica o trabalho com datas e reduz a probabilidade de erros em seu código.
Depois de instalar o date-fns com npm, importe o pacote para o seu programa usando a função require:
const { format, addDays } = exigir('date-fns');
Date-fns é modular. Ele contém muitas funções que você pode acessar desestruturando o pacote, conforme mostrado no bloco de código acima. O código importa apenas as funções format e addDays da biblioteca date-fns.
Aqui está um exemplo de como usar ambas as funções:
const hoje = novoData();
const formattedDate = formato (hoje, 'aaaa-MM-dd');
console.log (formattedDate);
const amanhã = formato (addDays (hoje, 1), 'aaaa-MM-dd');
console.log (amanhã);
Este programa demonstra o uso da biblioteca date-fns em JavaScript para formatar e manipular datas.
Ele cria um novo Data objeto que representa a data atual. Ele formata a data atual usando o formatar função da biblioteca date-fns.
Ele então usa o addDays função para criar um novo objeto Date representando a data de amanhã, formata-o usando o formatar função e registra a data atual e a data de amanhã no console em "aaaa-MM-dd"formato.
Uma desvantagem de usar Date-fns é que ele não oferece suporte a fuso horário. Em vez disso, ele usa uma biblioteca separada para trabalhar com fusos horários usando funções auxiliares.
Day.js, outra biblioteca muito leve, é uma boa escolha se você estiver procurando por uma alternativa imutável, menor e mais rápida para Moment.js.
Você pode instalar o Day.js como um pacote em seu projeto JavaScript executando o seguinte comando npm:
npm instalar dayjs
Para importar Day.js para seu projeto após a instalação, você pode usar o seguinte código:
const diajs = exigir('dayjs')
Aqui estão algumas funções e métodos básicos disponíveis no Day.js
const agora = diajs();
const data = diajs('2023-03-23', 'AAAA-MM-DD');
const mês = data.mês();
const dataformatada = data.format('MMMM D, AAAA');
const próximaSemana = data.add(1, 'semana');
O código acima cria um novo objeto Day.js representando a data e hora atuais, analisa uma string de data com um formato personalizado e obtém o mês do data variável. Ele também mostra como formatar e adicionar a uma instância de data.
Como Date-fns, Day.js não pode fornecer suporte de fuso horário por conta própria. O Day.js usa um sistema de plug-in, tornando-o confuso de usar.
Dos pacotes cobertos, o Day.js é o mais semelhante ao Moment.js. Isso torna mais fácil alternar entre os dois, se necessário.
Escolhendo a biblioteca certa para seu aplicativo
Escolher a biblioteca de data e hora certa para seu aplicativo JavaScript é uma decisão importante que pode ter um grande impacto na qualidade e na capacidade de manutenção do seu código.
Cada uma das bibliotecas discutidas aqui tem seus pontos fortes e fracos, por isso é importante avaliar cuidadosamente seus requisitos antes de tomar uma decisão.