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

时间:2014-08-21 23:29:22

标签: javascript firebase

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

假设用户有24小时的移动时间。如果他们在24小时内没有采取行动,他们将失去游戏。

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

time left = (last move unix timestamp) + (24 hours) - (current unix timestamp)

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

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

Related question

1 个答案:

答案 0 :(得分: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;