Ir para o conteúdo do rodapé
AJUDA DO NODE

Day.js npm (Como funciona para desenvolvedores)

Lidar com datas e horas em JavaScript tem sido historicamente uma tarefa desafiadora devido às limitações e peculiaridades do objeto Date nativo. Embora o objeto Date nativo forneça funcionalidades básicas, muitas vezes deixa a desejar em termos de usabilidade, levando os desenvolvedores a buscar soluções mais robustas. Uma dessas soluções é o Day.js , uma biblioteca JavaScript minimalista para analisar, validar, manipular e exibir datas e horas.

Este artigo explora os recursos, benefícios e uso do Day.js, demonstrando por que ele se tornou uma escolha popular entre os desenvolvedores.

O que é Day.js?

Day.js é uma biblioteca JavaScript leve que fornece uma API simples para trabalhar com datas e horas, exibindo-as corretamente em navegadores modernos. Foi projetado para ser uma alternativa à API igualmente moderna do Moment.js, uma biblioteca amplamente utilizada, porém muito mais pesada. O Day.js tem apenas 2 kB (compactado com gzip), o que o torna uma excelente opção para aplicações que priorizam o desempenho. Apesar de seu tamanho reduzido, a biblioteca Day.js é uma alternativa ao Moment.js e oferece recursos poderosos que abrangem os casos de uso mais comuns.

Day.js npm (Como funciona para desenvolvedores): Figura 1 - Day.js

Principais características

Aqui estão alguns recursos principais da biblioteca Day.js:

  1. Leve: Com seu tamanho reduzido e opções avançadas de formatação, o Day.js garante que seu aplicativo permaneça rápido e eficiente.
  2. Imutáveis: Os objetos do Day.js são imutáveis, o que significa que os métodos não modificam o objeto original, mas retornam novas instâncias.
  3. API encadeável: Os métodos em Day.js podem ser encadeados, tornando o código mais legível e conciso.
  4. Internacionalização: O Day.js suporta múltiplas localidades, permitindo a fácil localização de datas e horas.
  5. Sistema de Plugins: Um sistema de plugins modular permite estender a funcionalidade do Day.js sem sobrecarregar a biblioteca principal.
  6. Compatibilidade: O Day.js foi projetado para ser compatível com a API do Moment.js, facilitando a migração de bases de código existentes.

Instalação

O Day.js pode ser facilmente instalado via npm ou yarn. Também pode ser incluído diretamente no seu arquivo HTML usando uma CDN.

Usando o npm

npm install dayjs
npm install dayjs
SHELL

Uso básico

Day.js oferece amplo suporte a fusos horários, permitindo que os desenvolvedores gerenciem o horário local sem esforço e executem tarefas de manipulação de tempo com precisão. Com seus rigorosos recursos de análise sintática, o Day.js garante a interpretação precisa de valores de data e hora, permitindo resultados confiáveis ​​e consistentes. Seja para subtrair tempo ou atualizar valores, o Day.js facilita o trabalho com datas e horários, oferecendo recursos adicionais como a criação de novas instâncias para maior flexibilidade.

Vamos analisar alguns exemplos de como trabalhar com Day.js.

1. Criando Datas

Criar uma nova instância de data em Day.js é muito simples. O exemplo a seguir demonstra isso:

const dayjs = require('dayjs');

// Current date and time
const now = dayjs();

// Specific date and time
const specificDate = dayjs('2023-05-25');
const dayjs = require('dayjs');

// Current date and time
const now = dayjs();

// Specific date and time
const specificDate = dayjs('2023-05-25');
JAVASCRIPT

2. Formatação de datas

Day.js oferece uma maneira flexível e poderosa de formatar datas:

const date = dayjs('2023-05-25');

// Format date as "YYYY-MM-DD"
console.log(date.format('YYYY-MM-DD')); // 2023-05-25

// Format date as "dddd, MMMM D, YYYY"
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 2023
const date = dayjs('2023-05-25');

// Format date as "YYYY-MM-DD"
console.log(date.format('YYYY-MM-DD')); // 2023-05-25

// Format date as "dddd, MMMM D, YYYY"
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 2023
JAVASCRIPT

3. Analisando Datas

Day.js consegue analisar objetos de data a partir de strings e exibir datas em vários formatos:

const date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');

// Check if the dates are the same
console.log(date1.isSame(date2)); // true
const date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');

// Check if the dates are the same
console.log(date1.isSame(date2)); // true
JAVASCRIPT

4. Manipulando Datas

Day.js permite a manipulação fácil de datas com sua API encadeável:

const date = dayjs('2023-05-25');

// Add one week to the date
const nextWeek = date.add(1, 'week');

// Subtract one month from the date
const lastMonth = date.subtract(1, 'month');

console.log(nextWeek.format('YYYY-MM-DD')); // 2023-06-01
console.log(lastMonth.format('YYYY-MM-DD')); // 2023-04-25
const date = dayjs('2023-05-25');

// Add one week to the date
const nextWeek = date.add(1, 'week');

// Subtract one month from the date
const lastMonth = date.subtract(1, 'month');

console.log(nextWeek.format('YYYY-MM-DD')); // 2023-06-01
console.log(lastMonth.format('YYYY-MM-DD')); // 2023-04-25
JAVASCRIPT

5. Comparando Datas

Comparar datas no Day.js é simples e intuitivo:

const date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');

// Check if date1 is before date2
console.log(date1.isBefore(date2)); // true

// Check if date1 is after date2
console.log(date1.isAfter(date2)); // false

// Check if date1 is the same as date2
console.log(date1.isSame(date2)); // false
const date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');

// Check if date1 is before date2
console.log(date1.isBefore(date2)); // true

// Check if date1 is after date2
console.log(date1.isAfter(date2)); // false

// Check if date1 is the same as date2
console.log(date1.isSame(date2)); // false
JAVASCRIPT

6. Localização

Day.js oferece suporte à internacionalização (i18n) para trabalhar com diferentes localidades:

const dayjs = require('dayjs');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const localeData = require('dayjs/plugin/localeData');
const updateLocale = require('dayjs/plugin/updateLocale');

// Extend Day.js with plugins
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);

// Set locale to French
dayjs.locale('fr');

// Display date in localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023

// Customize locale
dayjs.updateLocale('fr', {
    months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
    weekdays: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
});

// Display date in customized localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
const dayjs = require('dayjs');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const localeData = require('dayjs/plugin/localeData');
const updateLocale = require('dayjs/plugin/updateLocale');

// Extend Day.js with plugins
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);

// Set locale to French
dayjs.locale('fr');

// Display date in localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023

// Customize locale
dayjs.updateLocale('fr', {
    months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
    weekdays: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
});

// Display date in customized localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
JAVASCRIPT

Usando Day.js com IronPDF para adicionar datas a PDFs em Node.js

A combinação do poder do Day.js, uma biblioteca leve de JavaScript para manipulação de datas, com o IronPDF, uma biblioteca versátil para geração e manipulação de PDFs em Node.js, permite que os desenvolvedores lidem com datas em seus documentos PDF de forma eficiente.

IronPDF - A biblioteca PDF for Node.js

IronPDF for Node.js é uma biblioteca abrangente que permite aos desenvolvedores criar, manipular e interagir com documentos PDF de forma integrada em suas aplicações Node.js Oferecendo um conjunto abrangente de recursos, o IronPDF simplifica tarefas como gerar PDFs a partir de HTML, URLs de sites ou documentos existentes, adicionar texto, imagens e elementos interativos, além de converter HTML para PDF com precisão.

Day.js npm (Como funciona para desenvolvedores): Figura 2 - IronPDF

Para obter informações mais detalhadas sobre o IronPDF for Node.js, visite esta página de documentação .

Começando

Primeiro, certifique-se de ter os pacotes necessários instalados. Você pode instalar o Day.js e o IronPDF via npm:

 npm e @ironsoftware/ironpdf

Adicionando assinaturas digitais com datas

O IronPDF também permite adicionar assinaturas digitais a PDFs. Veja como adicionar uma assinatura com um carimbo de data/hora usando Day.js.

import dayjs from 'dayjs';
import { PdfDocument } from "@ironsoftware/ironpdf";

(async () => {
    // Import a PDF
    const pdf = await PdfDocument.open("sample.pdf");

    // Get the current date and time for the signature
    const signatureDate = dayjs().toDate();

    // Sign the PDF with a digital certificate
    await pdf.signDigitalSignature({
        certificatePath: "IronSoftware.pfx",
        certificatePassword: "123456",
        signingReason: "To show how to sign a PDF",
        signingLocation: "Chicago, USA",
        signatureDate: signatureDate,
        signatureImage: {
            SignatureImagePath: "logo.png"
        }
    });

    // Save the signed PDF
    await pdf.saveAs("signed_with_date.pdf");
})();
import dayjs from 'dayjs';
import { PdfDocument } from "@ironsoftware/ironpdf";

(async () => {
    // Import a PDF
    const pdf = await PdfDocument.open("sample.pdf");

    // Get the current date and time for the signature
    const signatureDate = dayjs().toDate();

    // Sign the PDF with a digital certificate
    await pdf.signDigitalSignature({
        certificatePath: "IronSoftware.pfx",
        certificatePassword: "123456",
        signingReason: "To show how to sign a PDF",
        signingLocation: "Chicago, USA",
        signatureDate: signatureDate,
        signatureImage: {
            SignatureImagePath: "logo.png"
        }
    });

    // Save the signed PDF
    await pdf.saveAs("signed_with_date.pdf");
})();
JAVASCRIPT

Aqui está o resultado:

Day.js npm (Como funciona para desenvolvedores): Figura 3 - Saída em PDF

Você também pode usar exemplos de código prontos para uso para começar imediatamente a usar a biblioteca em sua aplicação Node.js Para obter mais informações, você também pode visitar esta página de referência da API .

Conclusão

Day.js é uma biblioteca poderosa e eficiente para gerenciar datas e horários em JavaScript. Sua natureza leve, suporte a estruturas de dados imutáveis ​​e compatibilidade com o Moment.js o tornam uma escolha atraente para desenvolvedores que buscam lidar com operações de data e hora sem adicionar sobrecarga significativa aos seus aplicativos.

Ao integrar o Day.js com o IronPDF, os desenvolvedores podem lidar facilmente com datas em seus documentos PDF. Seja para gerar PDFs a partir de URLs ou strings HTML, ou para adicionar assinaturas digitais com carimbos de data/hora, o Day.js oferece uma maneira simples e poderosa de gerenciar datas. Essa combinação aprimora a funcionalidade de seus aplicativos Node.js , permitindo um gerenciamento robusto e dinâmico de documentos PDF.

Experimente o IronPDF a partir de $799. Veja por si mesmo o quão poderosas podem ser a geração e a manipulação de PDFs. Experimente hoje mesmo!

Darrius Serrant
Engenheiro de Software Full Stack (WebOps)

Darrius Serrant é bacharel em Ciência da Computação pela Universidade de Miami e trabalha como Engenheiro de Marketing WebOps Full Stack na Iron Software. Atraído por programação desde jovem, ele via a computação como algo misterioso e acessível ao mesmo tempo, tornando-a o meio ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim