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

front end technologyjavascriptweb development

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

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

使用 Date() 类的对象

通过这种方法,我们将学习如何从 1970 年 1 月 1 日开始的 UNIX 纪元中获取当前日期。在 JavaScript 中,Date() 类包含 datetime 的方法和属性。用户可以创建 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) );

示例

在下面的示例中,我们将 Moment.js CDN 添加到 <head> 标记以使用 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() 类相比,它包含更多操作日期和时间的方法。


相关文章