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:

instagram viewer
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.