收藏
回答

如何获得小程序已运行多久的时间?如Node中的process.hrtime

有一个需求,需要严格控制时间的正确显示(不要求太精准,10秒内均可),而实测中无论是小程序、浏览器上均可随意更改时间,且更改时间后,Date对象获得的时间值会同步更改。若要实现需求,又不想每次显示前轮询服务器获得服务器时间,因为这无论是从响应时延,还是服务器压力上都有很大挑战。

所以以我目前能够想得到的方式则是,存在一个不随系统时间变化的程序运行时间A,再通过查询一次服务器时间B,记录B-A的offset,然后需要用到时间的时候,读取当前A值+offset则得出几乎在精度要求下的服务器时间了。

但我目前观察到只有用户交互事件中会携带timeStamp这个符合要求的偏移量,那么请问还有其他非用户触发的接口有类似此功能吗?

回答关注问题邀请回答
收藏

1 个回答

  • 11110111001011110111001110111
    11110111001011110111001110111
    09-02

    onLaunch,onHide


    onLaunch事件新增一条记录

    onHide事件更新时间


    09-02
    有用
    回复 3
    • 烧饼
      烧饼
      09-02
      你意思是对于手机用户来说,如果要换时间是要切后台的,你这办法就是假设他换了时间,然后onShow后更新回实际的时间?
      09-02
      回复
    • 11110111001011110111001110111
      11110111001011110111001110111
      09-02回复烧饼
      交给后端处理嘛:
      onLaunch 请求一下接口 这个接口要做的就是记录当前的时间以及用户的id 然后返回一个主键Id给到你


      onHide 你在去请求一下接口 把主键Id传到后端,这时后端不就能计算出用户访问了多长时间了吗(当前时间-记录的时间)


      这样,不管你怎么折腾你的手机有什么关系呢?反正我是后端计算时间
      09-02
      回复
    • 烧饼
      烧饼
      09-02回复11110111001011110111001110111
      但我这边类似是用云函数一样地,只能查询到记录,实时时间只能额外查询服务器。但我这里需求只是本地显示,而且间隔不固定,可能10秒后回调有数据,也可能30秒回调,所以我想尽量在本地计时
      09-02
      回复
登录 后发表内容
问题标签