回答

收藏

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

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

类似于 Unix 时间戳是代表当前时间和日期的单个数字。无论是数字还是字符串。
. E+ t! f" }9 ?0 ~/ c% d                                                               
. `# d9 k1 v/ V& O# J! k7 w    解决方案:                                                                1 T' z: P2 h5 ^" D# M
                                                               
      new Date()
      [5 V" T2 J& v# A4 h
一元运算符 likeplus在触发对象中valueOf方法Date并返回时间戳(无任何变化)。
8 l- c8 B" t* g* v: k细节:
4 X2 V7 j, b  Y% C9 y" n* K' N- W你可以使用几乎所有当前的浏览器Date.now()以毫秒为单位获取 UTC 时间戳;一个值得注意的例外是 IE8 及早版本(请参考兼容表)。
/ S4 x; {5 N- V6 o; p5 {0 J( W但是,你可以很容易地为此做一个垫片:
7 @9 D$ n; M( K( ?- L
    . ^8 I' V5 t/ k6 v7 d0 Y& a# K
  • if (!Date.now)    Date.now = function() { return new Date().getTime()code]要以您可以为单位获得时间戳:[code]Math.floor(Date.now() / 1000)
    6 {5 q4 ^* q/ [4 k& h3 H
或者,您可以使用:- J. D  t# h5 f  K
    Date.now()| 0+ h& [" r/ }) N& p; ]( ^8 n
这应该快一点,但可读性也很差。
9 ?, H' _0 m% {/ N" n我建议使用Date.now()(与兼容性垫片)。稍微好一点,因为它更短,不会创造新的Date对象。但是,如果不想要垫片和最大兼容性,可以用旧的方法毫秒为单位获取时间戳:7 J$ i1 \1 q. V6 B4 Z  d. Q
    new Date().getTime()
    ! D! ^2 o* [6 b8 \# {3 h
然后您可以将其转换为以下秒:
( {, {$ z' W* t8 t0 \; ]/ O
    , M9 N$ Y4 B, Y: _' A; H) \
  • Math.round(new Date().getTime()/1000)code]也可以用valueOf上述方法:[code]new Date().valueOf()
    " Z5 j+ g9 g* R! @2 e! E
以毫秒为单位的时间戳0 {. R$ p& n0 j: e  }8 [
[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]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则