JavaScript 日期格式

2025 年 9 月 6 日 | 7 分钟阅读

JavaScript 中格式化日期包括将日期转换为不同的格式,操作日期的书写方式,以及提取单个元素,如日期或特定时间。这对于时区转换或以用户友好的方式显示日期等任务非常重要。JavaScript 包含各种库,如 Date-fnsDay.js,以及内置的 对象函数,使格式化变得更容易。在本文中,我们将深入了解 JavaScript 中的日期格式化方法。

JavaScript 中的日期对象是什么?

JavaScript 提供了一个名为 Date 的内置对象来处理日期和时间。

示例

立即执行

输出

2025-09-01T08:27:14.498Z

在底层,JavaScript 将日期存储为自 1970 年 1 月 1 日 UTC(Unix 纪元时间)以来的毫秒数

如何使用 JavaScript 日期对象?

在 JavaScript 中,您可以使用一个名为 Date() 构造函数来处理日期。它帮助您获取今天的日期,或创建过去或将来的特定日期。即使不使用输入创建,它也会返回当前的精确日期和时间以及时区详细信息。

1. 获取今天的日期

如果您只想获取当前日期和时间,您可以使用 Date() 构造函数,而无需向其传递任何值

示例

立即执行

输出

2025-09-01T08:27:50.235Z

此代码创建一个 Date 对象,该对象存储今天的日期、当前时间以及您的时区信息。

2. 设置特定日期

当您想创建某个人的出生日期或特定日期的约会时。您可以通过将日期字符串传递给 Date() 来完成,如下所示

示例

立即执行

输出

2025-01-14T00:00:00.000Z

无论您如何书写,JavaScript 都会将其转换为其默认格式,其中包含完整的日期、时间和您的本地时区。

3. 不使用 new 使用 Date()

这里有一个有趣的方法,如果您不使用 new 关键字来使用 Date(),如下所示

示例

立即执行

输出

Mon Sep 01 2025 08:28:43 GMT+0000 (Coordinated Universal Time)

通过使用此方法,您将不会获得 Date 对象。相反,您将获得一个包含当前日期和时间的纯字符串。

Date() 和 new Date() 之间的区别

代码结果
New Date()创建一个真实的 Date 对象。
Date()只返回当前日期的字符串版本。

JavaScript 中内置的日期格式化方法

JavaScript 提供了一些内置工具,可以将日期转换为可读的字符串。当您想在网站上显示日期或以漂亮的格式记录日期时,这些工具特别有用。

让我们看看一些最有用的方法

1. toDateString()

此方法为您提供不带时间的日期,采用美观且易于阅读的格式。

示例

立即执行

输出

Mon Sep 01 2025

当您想要快速、简单且不带时钟或时区的数据时,它非常适合使用。

2. toISOString()

当您需要以 API 和数据库中使用的通用标准格式化日期时,这是最佳选择。

示例

立即执行

输出

2025-09-01T08:29:38.928Z

这称为 ISO 8601 格式。当您希望日期在任何地方都相同,而不受用户时区影响时,它非常完美。

3. toLocaleString()

此方法为您提供完整的日期和时间,并且与您国家或系统设置中使用的格式相匹配。

示例

立即执行

输出

9/1/2025, 8:29:55 AM

根据您在世界上的位置,这可能会显示为

  • 2025/08/30, 12:11:36 PM (美国)
  • 30/08/2025, 12:11:36 (英国)
  • 2025/08/30 12:11:36 (日本)

这就是为什么它被称为“本地化”字符串,因为它会根据您的地区而改变。

4. toLocaleDateString()

这个类似于 toLocaleString(),但它只为您提供日期,不包含时间。

示例

立即执行

输出

9/1/2025

如果您只想根据用户的语言或国家向用户显示一个干净的日期,这非常有用。

如何在 JavaScript 中获取日期的特定部分?

有时,您不需要整个日期,而可能只想要日期中的年份、月份或日期。幸运的是,JavaScript 提供了内置方法来快速获取这些部分。

让我们看看有用的方法

1. getFullYear()

此方法从 Date 对象中为您提供四位数的年份。

示例

立即执行

输出

2025

这只是简单地提取年份。当您需要显示或比较年份时,它非常有用。

2. getMonth()

此方法为您提供当前月份,但有一个特殊之处,即 JavaScript 中的月份从 0 开始,而不是 1。这意味着一月是 0,十二月是 11。

示例

立即执行

输出

Mon Sep 01 2025
8

即使是九月,JavaScript 也会将其显示为 8,因为它从 0 开始计数。

注意:如果您想显示月份的实际数字,即 1 到 12,那么您只需加 1。
console.log(currentDate.getMonth() + 1);  
这将为九月提供 8。

3. getDate()

此方法返回月份中的日期号。例如,如果日期是“9 月 1 日”,它将返回 1。

示例

立即执行

输出

1

当您想知道特定日期时,这非常完美,无论是用于显示生日、跟踪到期日期还是安排提醒。

使用这些方法,您可以将任何日期分解为各个部分,并根据需要使用它们,无论您是构建日历、排序事件还是显示自定义消息。

自定义 JavaScript 中的日期格式

默认情况下,JavaScript 为您提供完整的日期字符串,但如果您想以自己的方式以任何格式显示日期,有两种方法可以做到

1. 使用字符串连接

将其视为手动创建自己的日期。您将日期、月份和年份的各个部分像乐高积木一样连接起来。

示例

立即执行

输出

1/9/2025

使用 getMonth() + 1 是因为根据 JavaScript,一月是月份 0,十二月是月份 11。因此,为了显示实际的月份数字,我们在函数中添加 1。

2. 使用 Intl.DateTimeFormat()

如果手动构建日期感觉像过度工作,JavaScript 还提供了一个内置的日期格式化程序,它理解国际风格。

示例

立即执行

输出

9/1/2025

函数 Int1.DateTimeFormat('hi-IN') 使用印度日期规则创建一个日期格式化程序,而 .format() 将其应用于您的 Date 对象。

您甚至可以将 'hi-IN' 切换为其他内容,例如“en-US”(美国)或“en-UK”(英国),以根据当地标准自动更改格式。

支持的浏览器

  • Opera
  • Chrome
  • Internet Explorer
  • Safari

结论

本文帮助您了解如何在 JavaScript 中处理日期,这对于处理基于时间的数据、显示用户友好的时间戳以及构建日历、事件规划器等实际应用程序至关重要。

JavaScript 提供了强大的 Date 对象来创建和操作日期。您可以获取当前日期、设置特定日期,并使用 toDateString()toISOString()toLocaleString()toLocaleDateString() 等方法以可读或本地化格式显示日期。

为了获得更大的控制权,使用字符串连接进行自定义格式化或 Int1.DateTimeFormat() API 允许您根据您的应用程序或用户的区域定制日期的外观。

有了这些工具,格式化和显示日期变得更加直观和灵活,使您的代码更易于理解,您的应用程序更用户友好。

常见问题解答 (FAQs)

1. JavaScript 中的默认日期格式是什么?

当使用 new Date().toString() 时,JavaScript 的默认格式是

2. 如何在 JavaScript 中将日期格式化为 YYYY-MM-DD?

示例

立即执行

输出

2025 - 09 - 01

3. 我可以使用外部库进行日期格式化吗?

是的。流行的库包括

  • date-fns(现代且轻量级)
  • dayjs(紧凑且简单)
  • js(功能强大但已弃用)

4. toLocaleDateString() 方法有什么用?

toLocaleDateString() 方法根据特定区域设置格式化日期

示例

立即执行

输出

9/2/2025
9/2/2025

5. 如何在 JavaScript 中获取当前时间戳?

我们通过给定的代码在 JavaScript 中获取当前时间戳。

示例

立即执行

输出

1756735461000

6. 如何将 Unix 时间戳转换为可读的时间戳?

示例

立即执行

输出

Mon Sep 01 2025 14:04:21 GMT+0000 (Coordinated Universal Time)