Passer au contenu du pied de page
AIDE NODE

Day.js npm (Comment ça marche pour les développeurs)

La gestion des dates et des heures en JavaScript a historiquement été une tâche difficile en raison des limitations et des bizarreries de l'objet Date intégré. Bien que l'objet Date natif fournisse des fonctionnalités de base, il est souvent insuffisant en termes de convivialité, poussant les développeurs à rechercher des solutions plus robustes. Une telle solution est Day.js, une bibliothèque JavaScript minimaliste pour l'analyse, la validation, la manipulation et l'affichage des dates et des heures.

Cet article explore les fonctionnalités, les avantages et l'utilisation de Day.js, démontrant pourquoi il est devenu un choix populaire parmi les développeurs.

Qu'est-ce que Day.js ?

Day.js est une bibliothèque JavaScript légère qui fournit une API simple pour travailler avec les dates et les heures afin d'afficher correctement la date et l'heure dans les navigateurs modernes. Il a été conçu pour être une alternative à l'API moderne similaire Moment.js, une bibliothèque largement utilisée mais beaucoup plus lourde. Day.js ne fait que 2kB (gzipped), ce qui en fait un excellent choix pour les applications soucieuses des performances. Malgré sa petite taille, la bibliothèque Day.js est une alternative à Moment.js et offre des fonctionnalités puissantes qui couvrent les cas d'utilisation les plus courants.

Day.js npm (Comment ça fonctionne pour les développeurs): Figure 1 - Day.js

Caractéristiques clés

Voici quelques caractéristiques clés de la bibliothèque Day.js :

  1. Léger : Grâce à sa petite taille et ses options de formatage avancées, Day.js garantit que votre application reste rapide et efficace.
  2. Immuable : Les objets Day.js sont immuables, ce qui signifie que les méthodes ne modifient pas l'objet d'origine mais renvoient plutôt de nouvelles instances.
  3. API Chaînable : Les méthodes de Day.js peuvent être enchaînées, rendant le code plus lisible et concis.
  4. Internationalisation : Day.js supporte plusieurs paramètres régionaux, permettant une localisation facile des dates et des heures.
  5. Système de Plugin : Un système de plugin modulaire vous permet d'étendre les fonctionnalités de Day.js sans alourdir la bibliothèque principale.
  6. Compatibilité : Day.js est conçu pour être compatible avec l'API de Moment.js, facilitant ainsi la migration des bases de code existantes.

Installation

Day.js peut être facilement installé via npm ou yarn. Il peut également être inclus directement dans votre fichier HTML en utilisant un CDN.

Utiliser npm

npm install dayjs
npm install dayjs
SHELL

Utilisation de base

Day.js offre un support complet pour les fuseaux horaires, permettant aux développeurs de gérer facilement l'heure locale et d'effectuer des tâches de manipulation du temps avec précision. Avec ses capacités d'analyse strictes, Day.js assure une interprétation précise des valeurs de date et d'heure, permettant des résultats fiables et cohérents. Qu'il s'agisse de soustraire du temps ou de mettre à jour des valeurs, Day.js facilite le travail avec les dates et les heures, offrant des fonctionnalités supplémentaires comme la création de nouvelles instances pour une flexibilité accrue.

Examinons quelques exemples de travail avec Day.js.

1. Création de dates

Créer une nouvelle instance de date dans Day.js est simple. L'exemple suivant le démontre :

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. Formatage des dates

Day.js fournit une manière flexible et puissante de formater des dates :

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. Analyse des dates

Day.js peut analyser les objets date à partir de chaînes et afficher des dates dans divers formats :

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. Manipulation des dates

Day.js permet une manipulation facile des dates avec son API chaînable :

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. Comparaison des dates

Comparer des dates dans Day.js est simple et intuitif :

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. Localisation

Day.js prend en charge l'internationalisation (i18n) pour travailler avec différents paramètres régionaux :

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

Utiliser Day.js avec IronPDF pour ajouter des dates aux PDF dans Node.js

Combiner la puissance de Day.js, une bibliothèque JavaScript de dates légère, avec IronPDF, une bibliothèque de génération et de manipulation PDF polyvalente pour Node.js, permet aux développeurs de gérer efficacement les dates dans leurs documents PDF.

IronPDF - La bibliothèque PDF pour Node.js

IronPDF pour Node.js est une bibliothèque complète qui permet aux développeurs de créer, manipuler et interagir avec des documents PDF de manière transparente dans leurs applications Node.js. Offrant un ensemble riche de fonctionnalités, IronPDF simplifie des tâches telles que la génération de PDF à partir de HTML, d'URL de sites Web ou de documents existants, l'ajout de texte, d'images et d'éléments interactifs, ainsi que la conversion de HTML en PDF avec précision.

Day.js npm (Comment ça fonctionne pour les développeurs): Figure 2 - IronPDF

Pour des informations plus détaillées sur IronPDF pour Node.js, veuillez visiter cette page de documentation.

Démarrer

Tout d'abord, assurez-vous d'avoir installé les paquets nécessaires. Vous pouvez installer Day.js et IronPDF via npm :

 npm i @ironsoftware/ironpdf

Ajouter des signatures numériques avec des dates

IronPDF prend également en charge l'ajout de signatures numériques aux PDF. Voici comment ajouter une signature avec un horodatage en utilisant 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

Voici le résultat :

Day.js npm (Comment ça fonctionne pour les développeurs): Figure 3 - Sortie PDF

Vous pouvez également utiliser des exemples de code préconstruits pour commencer immédiatement avec la bibliothèque dans votre application Node.js. Pour une exploration plus approfondie, vous pouvez également visiter cette page de référence API.

Conclusion

Day.js est une bibliothèque puissante et efficace pour gérer les dates et les heures en JavaScript. Sa nature légère, son support pour des structures de données immuables, et sa compatibilité avec Moment.js en font un choix attrayant pour les développeurs cherchant à manipuler les opérations de date et d'heure sans ajouter de surcharge significative à leurs applications.

En intégrant Day.js avec IronPDF, les développeurs peuvent facilement gérer les dates dans leurs documents PDF. Qu'il s'agisse de générer des PDF à partir d'URL ou de chaînes HTML ou d'ajouter des signatures numériques avec des horodatages, Day.js offre une manière simple et puissante de gérer les dates. Cette combinaison améliore la fonctionnalité de vos applications Node.js, permettant une gestion robuste et dynamique des documents PDF.

Découvrez IronPDF à partir de $799. Voyez par vous-même à quel point la génération et la manipulation de PDF peuvent être puissantes. Essayez-le dès aujourd'hui !

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite