节点帮助

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

Darrius Serrant
Darrius Serrant
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

基本用法

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');
JAVASCRIPT

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
JAVASCRIPT

3. 解析日期

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

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

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
JAVASCRIPT

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
JAVASCRIPT

6. 本地化

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

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
JAVASCRIPT

在 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的更多详细信息,请访问此文档页面。

入门

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

npm i @ironsoftware/ironpdf

添加带日期的数字签名

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");
})();
JAVASCRIPT

下面是输出结果:

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

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

结论

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

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

享受IronPDF起价$749的体验。 亲自体验 PDF 生成和 PDF 操作的强大功能。 今天就试试!

Darrius Serrant
全栈软件工程师(WebOps)

达瑞乌斯·塞兰特拥有迈阿密大学计算机科学学士学位,目前在Iron Software担任全栈WebOps营销工程师。从小对编码的热爱使他认为计算机既神秘又易接近,成为创意和解决问题的完美媒介。

在Iron Software,达瑞乌斯乐于创造新事物并简化复杂概念,使其更易于理解。作为我们在职开发者之一,他还自愿教授学生,将他的专业知识传授给下一代。

对达瑞乌斯而言,他的工作之所以令人满足,是因为它具有价值并产生了真正的影响。

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

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

查看许可证 >