介绍
日期和时间不仅是日常生活的关键组成部分,也是计算机编程的一部分。无论您是需要它们来预订约会还是显示日历,您需要日期和时间的原因有很多。日期和时间功能的应用非常广泛且极其多样。这种多样性源于您可以根据用户配置时间和日期。处于不同地理位置的每个用户都将根据其时区获得不同的结果。这些功能用于具有约会界面和预订系统(如餐厅)的网站。
程序员经常使用 JavaScript 向其网站添加日期和时间功能。这是因为 JavaScript 已经具有内置功能 来处理这些方面。在本教程中,我们 将进一步探讨 Date 对象。我们将讨论可用于为网站上的日期和时间配置理想设置的方法。我们还将介绍如何更改格式等内容。
什么是 Date 对象?
正如我们刚才提到的,JavaScript 具有一个内置的日期和时间功能。它被称为 Date 对象。该对象允许您更改和管理与日期和时间关联的数据。当您为 Date 创建实例时,会创建一个新对象。该对象对应于您计算机当时的日期和时间设置。
为了更好地理解该对象的工作原理,让我们看一个例子。我们先创建一个变量。然后我们将给它分配一个给定的日期。假设这一天是星期三,日期是伦敦(GMT)时区的 10 月 18 日。看看这个配置:
|
1 2 3 4 |
// 将变量设置为当前日期和时间 const now = new Date(); // 查看输出 Now; |
|
1 2 3 |
输出 Wed Oct 18 2017 12:41:34 GMT+0000 (UTC) |
我们的输出显示了一个日期字符串。它由以下数据组成:
| 星期几 | 月份 | 日 | 年份 | 小时 | 分钟 | 秒 | 时区 |
| Wed | Oct | 18 | 2017 | 12 | 41 | 34 | GMT+0000 (UTC) |
JavaScript 通过时间戳接收数据。该时间戳来自 Unix 时间。这是一个表示自 1970 年 1 月 1 日午夜以来流逝的毫秒数的值。对于用户,日期以易于理解的格式显示。如果您想获取此时间戳,则必须使用 getTime() 方法,如下所示:
|
1 2 3 |
// 获取当前时间戳 now.getTime(); |
|
1 2 3 |
输出 1508330494000 |
虽然这个值看起来令人困惑,但它与日期字符串代表相同的意思。它就是 2017 年 10 月 18 日。
什么是 Epoch 时间?
下一个要学习的概念是 Epoch 时间。它也被称为零时间。您可以更好地将其理解为数据字符串
01 1月, 1970 00:00:00 世界标准时间 (UTC) 以及 0 时间戳。要测试它,请创建一个新变量。然后将其分配给一个新的
Date 实例,使用 0 时间戳:
|
1 2 3 4 5 |
// 将时间戳 0 分配给一个新变量 const epochTime = new Date(0); epochTime; |
|
1 2 3 |
输出 01 1月, 1970 00:00:00 世界标准时间 (UTC) |
Epoch 时间曾是程序员的标准。它也是 JavaScript 用来测量时间的方法。
JavaScript 中创建日期的格式
现在我们知道了如何使用字符串和时间戳创建一个新的 Date 实例,我们可以讨论不同的格式。共有四种格式,具体如下:

这意味着您可以根据需要指定特定的日期和时间。您也可以像我们之前讨论的那样,简单地使用数据字符串或时间戳。为了便于理解,我们将观察如何以三种不同的方式创建新的 Date 对象。假设我们的日期和时间是 1776 年 7 月 4 日中午 12:30 GMT:
|
1 2 3 4 5 6 7 8 |
// 时间戳方法 new Date(-6106015800000); // 日期字符串方法 new Date("July 4 1776 12:30"); // 日期和时间方法 new Date(1776, 6, 4, 12, 30, 0, 0); |
如你所见,这三种方法输出的日期相同。一个区别是,如果你使用的是 Epoch 时间之前的时间,时间戳将显示为负数。此外,在日期和时间方法中,秒和毫秒默认均为 0。如果你忘记输入数字,它也会默认设置为 0。
另一个令人困惑的地方是,7 月用 6 而不是 7 来表示。这是因为编号是从 0 开始的。在创建实例时,请记住这些事情。
使用 get 命令来获取日期
现在日期已经设置好了,让我们看看如何访问它的组成部分。一种方法是使用 get 命令。下表显示了 get 方法,用于 Date 对象:

在这个示例中,我们将一个新日期赋值给一个新变量,即 1980 年 7 月 31 日:
|
1 2 |
// 初始化一个新的生日实例 const birthday = new Date(1980, 6, 31); |
如果你使用这种方法获取所有单独的日期组成部分,它看起来会是这样的:
|
1 2 3 4 5 6 7 8 9 |
birthday.getFullYear(); // 1980 birthday.getMonth(); // 6 birthday.getDate(); // 31 birthday.getDay(); // 4 birthday.getHours(); // 0 birthday.getMinutes(); // 0 birthday.getSeconds(); // 0 birthday.getMilliseconds(); // 0 birthday.getTime(); // 333849600000 (对于 GMT) |
在某些情况下,你可能只需要日期的某个特定部分。你可以使用这些方法来实现。以下是如何测试以确认是否为 10 月 3 日的方法:
|
1 2 3 4 5 6 7 8 |
// 获取今天的日期 const today = new Date(); // 将今天与 10 月 3 日进行比较 if (today.getDate() === 3 && today.getMonth() === 9) { console.log("今天是 10 月 3 日。"); } else { console.log("今天不是 10 月 3 日。"); } |
|
1 2 3 |
输出 它'是 不是 10月 3日。 |
如果日期不是 10 月 3 日,并且你对其进行了测试,这就是你将得到的输出。
使用 set 命令来修改日期
类似于 get 命令,你也有对应的 set 命令。此命令允许你修改日期组成部分。下表显示了所有方法:

假设我们想将变量 birthday 从 1997 修改为 1980:
|
1 2 3 |
// 修改生日日期的年份 birthday.setFullYear(1997); birthday; |
|
1 2 3 |
输出 Thu Jul 31 1997 00:00:00 GMT+0000 (UTC) |
现在我们的输出显示了新的年份。你也可以类似地修改日期的其他组成部分。
JavaScript 中的 UTC 日期方法
如果你使用 get 方法提取日期组成部分,你将根据用户时区的本地系统设置接收它们。或者,你可以将其配置为根据 UTC 标准计算时间。UTC 代表协调世界时。你可以使用 getUTC 方法来执行此操作。下表显示了 JavaScript 中 Date 对象的所有 UTC 方法:

如你所见,所有方法都类似于 get 命令。但是,输出会有所不同。你可以使用以下代码测试差异:
|
1 2 3 4 5 6 |
// 将当前时间赋值给变量 const now = new Date(); // 打印本地和 UTC 时区 console.log(now.getHours()); console.log(now.getUTCHours()); |
这段代码将向您显示当前小时以及 UTC 时区的小时。如果您已经处于 UTC 时区,这两个数字将是相同的。使用 UTC 的原因在于它能确保跨国际区域和地区的一致性。
结论
在本教程中,我们介绍了适用于 Date 对象的各种方法。这包括如何使用 get 获取日期组件,以及如何使用 set 修改它们。我们还探讨了 UTC 时区以及如何在 JavaScript 中使用它们。
总之,JavaScript 拥有大量内置的日期和时间功能。这使得编写复杂网站的程序变得非常简单。您可以在 Mozilla Developer Network 上阅读更多关于 JavaScript 日期和时间功能的信息。不过,本教程应该可以帮助您掌握最基本的基础知识。
以下是来自 我们的博客 的更多资源,它们将使 JavaScript 编程变得更加轻松:
祝您编程愉快!
评论
暂无评论。发表第一条评论吧。