如何在Firebase中获取Unix时间戳?

Mis*_*hko 2 javascript firebase

在我的国际象棋应用程序中,我Firebase.ServerValue.TIMESTAMP用来记录移动的时间.

假设用户有24小时的移动时间.如果他们在24小时内没有采取行动,他们将输掉比赛.

我想显示用户离开的时间.要计算这个,我需要知道当前的unix时间戳,然后我会这样做:

time left = (last move unix timestamp) + (24 hours) - (current unix timestamp)
Run Code Online (Sandbox Code Playgroud)

我觉得假设用户的机器时间正确可能不是最好的主意.

有没有办法从Firebase服务器获取unix时间戳?

相关问题

Kat*_*ato 5

您可以利用.info/serverTimeOffset来计算从本地到服务器的差异:

var getCurrentTimestamp = (function() {
  var OFFSET = 0;

  fbutil.ref("/.info/serverTimeOffset").on('value', function(ss) {
    OFFSET = ss.val()||0;
  });

  return function() {
     return Date.now() + OFFSET;
  }
})();

var now = getCurrentTimestamp();
var delta = now - timestamp;
Run Code Online (Sandbox Code Playgroud)

  • 我相当肯定像你这样聪明的头脑可以解决这个问题:)实际上,它会在Firebase初始化连接的时候设置,所以如果你有一些数据要比较它,你就会有一个偏移量. (2认同)