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.

Principais características
Aqui estão alguns recursos principais da biblioteca Day.js:
- 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.
- 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.
- API encadeável: Os métodos em Day.js podem ser encadeados, tornando o código mais legível e conciso.
- Internacionalização: O Day.js suporta múltiplas localidades, permitindo a fácil localização de datas e horas.
- Sistema de Plugins: Um sistema de plugins modular permite estender a funcionalidade do Day.js sem sobrecarregar a biblioteca principal.
- 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
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');
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
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
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
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
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
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.

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");
})();
Aqui está o resultado:

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!




