如何在 JavaScript 中获取时间戳?
在本教程中,我们将学习如何在 JavaScript 中获取时间戳。软件开发人员或应用程序开发人员几乎总是需要处理日期和时间。在许多情况下,他们需要操作日期和时间戳。例如,在用户仪表板上显示时间,或将操作时间保存到数据库中。
现在,让我们了解一下什么是时间戳?时间戳是从 1970 年 1 月 1 日(UNIX 纪元开始的时间)开始算起的毫秒总数。使用时间戳,我们可以提取日期、星期、年份、月份、小时、分钟、秒、毫秒等。
因此,现在用户可以理解为什么时间戳很重要。与其存储整个日期和时间的字符串,不如存储时间戳,并在需要时提取完美的日期和时间。这样可以节省数据库的空间。
在这里,我们有不同的方法可以使用原生 JavaScript 的内置库方法和 JavaScript 的 Moment JS 库来获取时间戳。
使用 Date.now() 或 getTime() 方法
在原生 JavaScript 中,我们有一个内置的 Date 类来获取日期和时间。用户可以直接使用 Date 类的 Date.now() 方法,它返回从 UNIX 纪元开始算起的毫秒总数。同样,用户也可以创建 Date 类的对象,并使用该对象上的 getTime() 方法。
语法
以下是使用 Date.now() 方法和 Date 类对象上的 getTime() 方法的语法。
- 使用 Date 类的 now() 方法。
let timestamp = Date.now();
- 使用 getTime() 方法。
let date = new Date(); // object of the date class timestamp = date.getTime(); // To get the timestamp
示例
在下面的示例中,我们只是使用 Date.now() 方法获取时间戳。此外,我们还创建了 Date 类的对象,并使用该对象调用了 getTime() 方法。
<!DOCTYPE html> <html> <body> <h2> Get a timestamp in JavaScript. </h2> <h4> Get timestamp using the Date.now() </h4> <div id="timestamp1"> </div> <h4> Get timestamp using the getTime() method </h4> <div id="timestamp2"> </div> <script> let timestamp1 = document.getElementById("timestamp1"); let timestamp2 = document.getElementById("timestamp2"); let timestamp = Date.now(); timestamp1.innerHTML = timestamp; let date = new Date(); // creating the object of the date class timestamp = date.getTime(); timestamp2.innerHTML = timestamp; </script> </body> </html>
使用 Moment JS 的 valueof() 方法
Moment JS 是一个 JavaScript 库,它提供了额外的强大功能来操作日期和时间。在这里,我们将使用 valueof() 方法来获取从 UNIX 纪元开始算起的毫秒总数,并且要获取秒数,我们将使用 unix() 方法。
在使用此方法之前,我们需要确保已在我们的应用程序中安装了 Moment Js 库,或者我们正在使用 CDN 将 Moment JS 嵌入到我们的代码中。
语法
let timestamp = moment().valueof(); // timestamp in milliseconds. let timestamp = moment().unix(); // timestamp in seconds.
示例
下面的示例演示了如何使用 Moment JS 库的 valueof() 方法。我们使用 valueof() 方法获取当前时间戳(以毫秒为单位)。此外,我们还实现了 Moment JS 的 unix() 方法来获取以毫秒为单位的时间戳。
<!DOCTYPE html> <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 a timestamp in JavaScript. </h2> <h4> Get timestamp in milliseconds using the valueOf() method of Moment JS. </h4> <div id="timestamp1"> </div> <h4> Get timestamp in seconds using the valueOf() method of Moment JS.</h4> <div id="timestamp2"> </div> <script> let timestamp1 = document.getElementById("timestamp1"); let timestamp2 = document.getElementById("timestamp2"); let timestamp = moment().valueOf(); // timestamp in milliseconds. timestamp1.innerHTML = timestamp; timestamp = moment().unix(); // timestamp in seconds timestamp2.innerHTML = timestamp; </script> </body> </html>
时间戳的用途
时间戳在 JavaScript 中可以有多种用途,但这里我们通过一个示例展示了最佳用途。我们可以使用时间戳来查找两个日期之间的年份、月份、天数或任何你想要的单位的差异。
语法
用户可以按照以下语法查找两个时间戳之间的差异。
let startDate = new Date("01/23/1990"); // creating date object let diff = Date.now() - startDate.getTime(); // difference between current date and start date
示例
在下面的示例中,我们使用时间戳查找两个日期之间的年份、天数和周数。
<html> <body> <h2> Get a timestamp in JavaScript. </h2> <h4>Number of years between the 01 / 23 / 1990 and current date. </h4> <div id="timestamp1"> </div> <h4>Difference in weeks</h4> <div id="timestamp2"> </div> <h4> Difference in days</h4> <div id="timestamp3"> </div> <script> let timestamp1 = document.getElementById("timestamp1"); let timestamp2 = document.getElementById("timestamp2"); let timestamp3 = document.getElementById("timestamp3"); let startDate = new Date("01/23/1990"); let diff = Date.now() - startDate.getTime(); let day = 1000 * 60 * 60 * 24; // milliseconds of 1 day timestamp3.innerHTML = Math.floor(diff / day); let week = 7 * day // 7 days is equal to one week. timestamp2.innerHTML = Math.floor(diff / week); let year = 365 * day; // year has 365 days timestamp1.innerHTML = Math.floor(diff / year); </script> </body> </html>
结论
我们已经了解了如何使用 Moment JS 库方法和 JavaScript 的 Date() 类来获取时间戳。此外,我们还通过一个带有工作代码的示例了解了时间戳的用途。