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() 静态方法来获取时间戳。