如何在 JavaScript 中获取自 Unix 纪元以来的时间和日期?


在本教程中,我们将学习如何在 JavaScript 中获取自 Unix 纪元以来的日期和时间。有时,程序员需要从**1970 年 1 月 1 日**(**Unix 纪元**开始)找到毫秒、秒、天或其他单位的总数。

因此,用户可以使用 JavaScript 的**Date()** 类或 JavaScript 的 Moment.js 库来获取自纪元开始以来的日期和时间。

使用 Date() 类对象

在这种方法中,我们将学习如何从 1970 年 1 月 1 日开始的 Unix 纪元获取当前日期。在 JavaScript 中,**Date()** 类包含**日期**和**时间**的方法和属性。用户可以创建 Date() 类的对象并在该对象上调用 Date() 类所有方法。

语法

用户可以按照以下语法获取自纪元以来的日期。

let date = new Date( ); // get date
let totalMilliSeconds = date / 1; // get total milliseconds since epoch

示例

在下面的示例中,我们创建了 Date() 类的对象以获取自纪元以来的日期。我们还通过将日期除以 1 来查找自纪元以来的毫秒总数。用户还可以获取自纪元以来的秒数、分钟数和小时数。

<html> <head> </head> <body> <h2> Get date and time since Unix epochs started in JavaScript. </h2> <h4> Get current Date using the <i> new Date() </i> object. </h4> <p id = "output1"> </p> <h4> Get total number of milliseconds from epochs using <i> new Date() </i> method.</h4> <p id = "output2"> </p> <script> let output1 = document.getElementById("output1"); let output2 = document.getElementById("output2"); let date = new Date(); output1.innerHTML += date; // divide date by 1 to get total milliseconds since epochs output2.innerHTML += date / 1; </script> </body> </html>

使用 Date.valueOf() 方法

在这种方法中,我们将使用日期类的**valueOf()** 方法。当用户通过以日期类对象作为引用来调用**valueOf()** 方法时,它将返回自纪元以来的毫秒总数。我们可以从毫秒数获取总小时数、天数等。

语法

用户可以按照以下语法使用 valueOf() 方法并获取自纪元开始以来的总小时数。

let milliseconds = new Date().valueOf();
// divide milliseconds by 1000 * 60 * 60 (seconds * minutes * hours) to get total hours
let hours = Math.floor( milliseconds / (1000 * 60 * 60) );

示例

在下面的示例中,我们创建了日期类的对象,并使用*valueOf()* 方法找到了自纪元开始以来的毫秒总数。此外,我们还使用总毫秒数找到了自纪元以来的总小时数。

<html> <head> </head> <body> <h2> Get date and time since Unix epoch started in JavaScript. </h2> <h4> Get total number of milliseconds from epochs using <i> Date.valueOf() </i> method. </h4> <p id = "output1"> </p> <h4> Get total number of hours from epochs using <i> Date.valueOf() </i> method. </h4> <p id = "output2"> </p> <script> let output1 = document.getElementById("output1"); let output2 = document.getElementById("output2"); let milliseconds = new Date().valueOf(); output1.innerHTML += milliseconds; output2.innerHTML += Math.floor(milliseconds / (1000 * 60 * 60)); </script> </body> </html>

使用 Moment.js moment() 方法

在这种方法中,我们将使用 Moment.js 库,这是一个用于操作日期的特殊库。Moment.js 包含 moment() 方法,该方法返回毫秒总数。

用户可以按照以下语法使用 Moment() 方法获取自纪元以来的毫秒总数,并将其转换为秒数和天数。

语法

let milliseconds = moment();
// dividing milliseconds by 1000 to get seconds
let seconds = milliseconds / 1000;
// dividing seconds with 60 * 60 *24 (seconds * minutes * hours) to get days
let days = Math.floor( seconds / (60 * 60 * 24) );

示例

在下面的示例中,我们在*<head>* 标记中添加了 Moment.js CDN 以使用 moment() 方法。我们使用 moment() 方法创建了新的日期对象,该方法返回毫秒总数。此外,我们还将毫秒数转换为秒数和天数。

<html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.3/moment-with-locales.min.js" integrity="sha512-vFABRuf5oGUaztndx4KoAEUVQnOvAIFs59y4tO0DILGWhQiFnFHiR+ZJfxLDyJlXgeut9Z07Svuvm+1Jv89w5g==" crossorigin="anonymous" referrerpolicy="no-referrer"> </script> </head> <body> <h2>Get the date and time since the Unix epoch started in JavaScript.</h2> <h4>Get total number of seconds from epoch using <i>moment()</i> method.</h4> <p id = "output1"></p> <h4> Get total number of days from epochs using <i>moment()</i> method.</h4> <p id = "output2"></p> <script> let output1 = document.getElementById("output1"); let output2 = document.getElementById("output2"); let milliseconds = moment(); // get the seconds let seconds = milliseconds / 1000; output1.innerHTML += seconds; // get the total days since epoch output2.innerHTML += Math.floor(seconds / (60 * 60 * 24)); </script> </body> </html>

用户已经学习了如何在 JavaScript 中获取自纪元以来的时间和日期。用户可以使用原生的 JavaScript Date() 类或 Moment.js 库。最好使用 Moment.js,因为它包含比 Date() 类更多用于操作日期和时间的方法。

更新于: 2022-08-17

4K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告