在我的国际象棋应用程序中,我使用Firebase.ServerValue.TIMESTAMP
来记录移动的时间。
假设用户有24小时的移动时间。如果他们在24小时内没有采取行动,他们将失去游戏。
我想显示用户离开的时间。要计算这个,我需要知道当前的unix时间戳,然后我会这样做:
time left = (last move unix timestamp) + (24 hours) - (current unix timestamp)
我觉得假设用户的机器时间正确可能不是最好的主意。
有没有办法从Firebase服务器获取unix时间戳?
答案 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;