回答

收藏

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

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

类似于 Unix 时间戳是代表当前时间和日期的单个数字。无论是数字还是字符串。2 \7 |9 V' _8 g( x2 f' e0 A
                                                                5 W/ ]5 g& m$ H) ~1 m: {
    解决方案:                                                                1 p) b" C$ p( I3 m9 j% z9 j. j# R
                                                               
      new Date()" g, A+ c+ H/ f$ k2 [* @, [
一元运算符 likeplus在触发对象中valueOf方法Date并返回时间戳(无任何变化)。
4 E" ?: o& F8 d' _! b# c  n' b细节:7 h+ w0 F' P$ n) f# V9 r/ S5 R
你可以使用几乎所有当前的浏览器Date.now()以毫秒为单位获取 UTC 时间戳;一个值得注意的例外是 IE8 及早版本(请参考兼容表)。
* A' k& d' F! E# g3 k# H9 u1 e但是,你可以很容易地为此做一个垫片:
5 ?) c3 N1 D( w6 R

      g0 k2 Q# F: W: i7 F6 M" N9 H; b/ c
  • if (!Date.now)    Date.now = function() { return new Date().getTime()code]要以您可以为单位获得时间戳:[code]Math.floor(Date.now() / 1000)
    " Z. T; t4 Y& B+ V
或者,您可以使用:
: K% w& _4 N; F( [* s' j( n& _
    Date.now()| 0
      L/ [* r6 |, J
这应该快一点,但可读性也很差。: D1 G2 Y5 ]0 V4 r4 O
我建议使用Date.now()(与兼容性垫片)。稍微好一点,因为它更短,不会创造新的Date对象。但是,如果不想要垫片和最大兼容性,可以用旧的方法毫秒为单位获取时间戳:
% ?! P) n3 _+ ?: [
    new Date().getTime(). [2 q; W& i1 @
然后您可以将其转换为以下秒:
+ i3 R( z9 X1 z3 m, y" y0 g' P
    ! t& O; U0 s& y: w8 r
  • Math.round(new Date().getTime()/1000)code]也可以用valueOf上述方法:[code]new Date().valueOf()! `$ @) w1 G" L5 ~$ O
以毫秒为单位的时间戳
8 O" f& X  ^% n0 A2 Q# K[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]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则