Skip to content

Latest commit

 

History

History
66 lines (43 loc) · 1.81 KB

获取当前时间戳.md

File metadata and controls

66 lines (43 loc) · 1.81 KB

获取当前时间戳

UNIX 时间戳是一个整数,表示自 1970 年 1 月 1 日以来经过的秒数。

在类似 UNIX 的机器(包括 Linux 和 macOS)上,您可以在终端中键入 date +%s 并返回 UNIX 时间戳:

$ date +%s
# 1659858284

当前时间戳可以通过调用 Date 对象上的 now() 方法获取:

Date.now()

你可以通过调用得到相同的值:

new Date().getTime()
// or
new Date().valueOf()

注意:IE8 及以下版本在 Date 上没有 now() 方法。如果需要支持 IE8 及以下版本,请寻找 polyfill,或使用 new Date().getTime()

您还可以使用:

+new Date()

这可能看起来很奇怪,但它是完全正确的 JavaScript 代码。一元运算符 + 自动调用分配给它的任何对象上的 valueOf() 方法,该方法返回时间戳(以毫秒为单位)。这段代码的问题在于,您实例化了一个新的 Date 对象,该对象会立即被丢弃。

要根据时间戳生成日期,请使用 new Date(<timestamp>),但要确保传递一个数字(如果使用字符串将得到一个无效日期结果,如果不确定,请使用 parseInt()

另外,JavaScript 中的时间戳以毫秒为单位。

要获取以秒为单位的时间戳,请使用以下方法进行转换:

Math.floor(Date.now() / 1000)

注意:有些教程使用 Math.round(),但这将接近下一秒,即使第二秒尚未完全完成。

或者:

~~(Date.now() / 1000)

~~Math.floor 做着相同的工作,但它可读性较差。

总结

以下是获取当前时间的时间戳的三种方式:

new Date().getTime()
+new Date()
Date.now()

如果你已经放弃了 IE8,你可以转而使用 Date.now() 静态方法来获取时间戳。