节点帮助

Day.js npm(它如何为开发人员工作)

发布 2024年九月29日
分享:

在 JavaScript 中处理日期和时间一直是一个具有挑战性的任务,这是由于内置 Date 对象的局限性和怪异之处。 虽然原生的Date对象提供了基本功能,但它在可用性方面常常显得不足,导致开发者寻找更强大的解决方案。 其中一种解决方案是 Day.js,这是一款用于解析、验证、操作和显示日期和时间的简约JavaScript库。

本文探讨了Day.js的功能、优势和用法,展示了它为何成为开发者中受欢迎的选择。

什么是Day.js?

Day.js 是一个轻量级的JavaScript库,提供了用于处理日期和时间的简单API,以便在现代浏览器中正确显示日期和时间。 它被设计为一个替代现代API Moment.js的选择,Moment.js是一个广泛使用但更为庞大的库。 Day.js 仅有 2kB 大小。 (压缩gzip),使其成为性能敏感型应用程序的绝佳选择。 尽管体积小巧,Day.js 库是 Moment.js 的一个替代品,并提供了强大的功能,可以覆盖最常见的使用场景。

Day.js npm(对开发者的作用):图 1 - Day.js

主要功能

以下是Day.js库的一些关键功能:

  1. 轻量级:凭借其小巧的体积和先进的格式选项,Day.js 确保您的应用程序保持快速和高效。

  2. 不可变:Day.js 对象是不可变的,这意味着方法不会改变原始对象,而是返回新的实例。

  3. 链式 API:Day.js 中的方法可以链式连接,使代码更加可读和简洁。

  4. 国际化:Day.js 支持多种语言环境,可以轻松实现日期和时间的本地化。

  5. 插件系统:模块化插件系统允许您扩展 Day.js 功能,而不会使核心库膨胀。

  6. 兼容性:Day.js 设计为与 Moment.js 的 API 兼容,使现有代码库的迁移变得容易。

安装

Day.js 可以通过 npm 或 yarn 轻松安装。 它也可以通过 CDN 直接包含在您的 HTML 文件中。

使用 npm

npm install dayjs
npm install dayjs
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install dayjs
VB   C#

基本用法

Day.js 提供广泛的时区支持,使开发人员能够轻松管理本地时间,并精确地执行时间操作任务。 凭借其严格的解析能力,Day.js 确保了日期和时间值的准确解释,从而提供可靠且一致的结果。 无论是减去时间还是更新数值,Day.js 使处理日期和时间变得简单,并提供额外的功能,例如创建新实例以增强灵活性。

让我们来看一些使用 Day.js 的示例。

1. 创建日期

在 Day.js 中创建一个新的日期实例很简单。 以下示例演示了这一点:

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');
const dayjs = require( 'dayjs');
' Current date and time
const now = dayjs()
' Specific date and time
const specificDate = dayjs( '2023-05-25');
VB   C#

2. 格式化日期

Day.js 提供了一种灵活而强大的新实例方法来格式化日期:

const date = dayjs('2023-05-25');
console.log(date.format('YYYY-MM-DD')); // 2023-05-25
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 2023
const date = dayjs('2023-05-25');
console.log(date.format('YYYY-MM-DD')); // 2023-05-25
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 2023
const [date] = dayjs( '2023-05-25');
console.log([date].format( 'YYYY-MM-DD')); ' 2023-05-25
console.log([date].format( 'dddd, MMMM D, YYYY')); ' Thursday, May 25, 2023
VB   C#

3. 解析日期

Day.js可以从字符串解析日期对象,并以各种格式显示日期:

const date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');
console.log(date1.isSame(date2)); // true
const date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');
console.log(date1.isSame(date2)); // true
const date1 = dayjs( '2023-05-25');
const date2 = dayjs( '05/25/2023', 'MM/DD/YYYY');
console.log(date1.isSame(date2)) ' true
VB   C#

4. 操作日期

Day.js 通过其可链式的API,允许轻松操作日期:

const date = dayjs('2023-05-25');
const nextWeek = date.add(1, 'week'); // Updated Value
const lastMonth = date.subtract(1, 'month'); // Updated Value
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');
const nextWeek = date.add(1, 'week'); // Updated Value
const lastMonth = date.subtract(1, 'month'); // Updated Value
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');
const nextWeek = [date].add(1, 'week'); ' Updated Value
const lastMonth = [date].subtract(1, 'month'); ' Updated Value
console.log(nextWeek.format( 'YYYY-MM-DD')); ' 2023-06-01
console.log(lastMonth.format( 'YYYY-MM-DD')); ' 2023-04-25
VB   C#

5. 比较日期

在 Day.js 中比较日期简单直观:

const date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2)); // false
const date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2)); // false
const date1 = dayjs( '2023-05-25');
const date2 = dayjs( '2023-06-01');
console.log(date1.isBefore(date2)) ' true
console.log(date1.isAfter(date2)) ' false
console.log(date1.isSame(date2)) ' false
VB   C#

6. 本地化

Day.js 支持国际化 (国际化) 用于处理不同的区域设置:

const dayjs = require('dayjs');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const localeData = require('dayjs/plugin/localeData');
const updateLocale = require('dayjs/plugin/updateLocale');
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);
dayjs.locale('fr');
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
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']
});
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');
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);
dayjs.locale('fr');
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
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']
});
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');
dayjs.extend(localizedFormat)
dayjs.extend(localeData)
dayjs.extend(updateLocale)
dayjs.locale( 'fr');
console.log(dayjs().format( 'dddd, MMMM D, YYYY')); ' jeudi, mai 25, 2023
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'] });
console.log(dayjs().format( 'dddd, MMMM D, YYYY')); ' jeudi, mai 25, 2023
VB   C#

在 Node.js 中使用 Day.js 与 IronPDF 向 PDF 添加日期

将轻量级 JavaScript 日期库包 Day.js 的强大功能与适用于 Node.js 的多功能 PDF 生成和操作库 IronPDF 相结合,使开发人员能够高效地处理 PDF 文档中的日期。

IronPDF - Node.js PDF库

IronPDF for Node.js 是一个全面的库,使开发者能够在其 Node.js 应用程序中无缝创建、操作和交互 PDF 文档。 IronPDF提供丰富的功能集,简化了从HTML、网站URL或现有文档生成PDF、添加文本、图像和交互元素以及精确将HTML转换为PDF等任务。

Day.js npm(对开发人员的工作原理):图2 - IronPDF

有关 IronPDF for Node.js 的详细信息,请访问此链接 文件 page.

入门

首先,确保您已安装必要的软件包。 您可以通过npm安装Day.js和IronPDF:

npm i @ironsoftware/ironpdf
npm i @ironsoftware/ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm i @ironsoftware/ironpdf
VB   C#

添加带日期的数字签名

IronPDF还支持向PDF添加数字签名。 以下是如何 添加签名 使用 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");
})();
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'import dayjs from 'dayjs'; import { PdfDocument } from "@ironsoftware/ironpdf"; (async() => { const pdf = await PdfDocument.open("sample.pdf"); const signatureDate = dayjs().toDate(); 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" } }); await pdf.saveAs("signed_with_date.pdf"); })();
VB   C#

下面是输出结果:

Day.js npm(它如何为开发者工作):图 3 - PDF 输出

您还可以使用现成的 代码示例 立即在您的 Node.js 应用程序中开始使用该库。 如需进一步探索,您还可以访问此 API 参考资料 page.

结论

Day.js是一个强大而高效的库,用于在JavaScript中管理日期和时间。 其轻量级特性、对不可变数据结构的支持以及与Moment.js的兼容性,使其成为寻求处理日期和时间操作而不增加应用程序显著负担的开发者的理想选择。

通过将Day.js与IronPDF集成,开发人员可以轻松处理PDF文档中的日期。 无论是从 URL 或 HTML 字符串生成 PDF,还是添加带有时间戳的数字签名,Day.js 都提供了一种简单而强大的日期管理方式。 此组合增强了您的Node.js应用程序的功能,使得PDF文档管理变得强大且动态。

体验 IronPDF 的 起价为 $749。亲自体验 PDF 生成和 PDF 操作的强大功能。 立即试用!

< 前一页
tailwind npm(为开发人员提供的工作原理)
下一步 >
Moment.js(对开发人员的运作方式)

准备开始了吗? 版本: 2024.9 刚刚发布

免费 npm 安装 查看许可证 >