回答

收藏

你如何在 JavaScript 中获得时间戳?

技术问答 技术问答 230 人阅读 | 0 人回复 | 2023-09-11

类似于 Unix 时间戳是代表当前时间和日期的单个数字。无论是数字还是字符串。; H( p9 I. I, O2 E7 O
                                                               
6 t/ @& c/ u) T0 G    解决方案:                                                                * I0 \4 J) r7 U- H
                                                               
      new Date()
    , c7 U( z  i* a0 x' F
一元运算符 likeplus在触发对象中valueOf方法Date并返回时间戳(无任何变化)。
: S  {2 k7 p7 B! U' l细节:1 k; r$ F; J4 Y6 {
你可以使用几乎所有当前的浏览器Date.now()以毫秒为单位获取 UTC 时间戳;一个值得注意的例外是 IE8 及早版本(请参考兼容表)。( ?  s! K& y/ u1 m, W. M# G
但是,你可以很容易地为此做一个垫片:
' {* h; p- P4 Y2 D; n, W- n7 m
    4 q0 {, q' j# X  N: e. K
  • if (!Date.now)    Date.now = function() { return new Date().getTime()code]要以您可以为单位获得时间戳:[code]Math.floor(Date.now() / 1000)
    + T2 O7 K6 m- t9 D  L# k! H2 N( O8 r
或者,您可以使用:
" y+ _3 a/ l) f( s) o
    Date.now()| 0
    * k+ Q: ~# C$ K) I" I" M. j
这应该快一点,但可读性也很差。
: e! m$ K- H) g4 c5 e; L我建议使用Date.now()(与兼容性垫片)。稍微好一点,因为它更短,不会创造新的Date对象。但是,如果不想要垫片和最大兼容性,可以用旧的方法毫秒为单位获取时间戳:6 T' P# g: Y% L
    new Date().getTime()
    ' d; W4 G# Y- _
然后您可以将其转换为以下秒:
( W) w( `0 o$ W8 N' n7 E
    # G0 g, {* r7 N% L$ Z) h( [
  • Math.round(new Date().getTime()/1000)code]也可以用valueOf上述方法:[code]new Date().valueOf(); V' \+ x0 X$ u" b$ y3 Y
以毫秒为单位的时间戳0 D) ?- F, [- V5 R; |3 K- X
[code]var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now()   window.performance.timing.navigationStart : Date.now();console.log(timeStampInMs,Date.now()code]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则