将Firebase时间戳转换为当前时间或其他可用形式

时间:2018-11-17 21:04:00

标签: javascript firebase firebase-realtime-database timestamp

我正在尝试使用Firebase的时间戳,但是我不了解JavaScript的文档。如何将检索到的值转换为时间(即4:00 pm),这是我一直在使用的页面:https://firebase.google.com/docs/database/web/offline-capabilities#server-timestamps

似乎您使用.set(firebase.database.ServerValue.TIMESTAMP);设置了时间戳记,并且

 var offsetRef = firebase.database().ref(".info/serverTimeOffset");
 offsetRef.on("value", function(snap) {
    var offset = snap.val();
    var estimatedServerTimeMs = new Date().getTime() + offset;
    });

获取时间戳和客户端的时钟偏斜。由于您正在获取“用于自动填充Firebase服务器确定的当前时间戳记(自Unix纪元以来的时间,以毫秒为单位)的占位符值”,因此您似乎无法按照此处询问的方式执行此操作我会做的:Firebase TIMESTAMP to date and Time

var timestamp = '1452488445471';
var myDate = new Date(timestamp);

我不太了解答案:

 fb.ref("/.info/serverTimeOffset").on('value', function(offset) {
   var offsetVal = offset.val() || 0;
   var serverTime = Date.now() + offsetVal;
  });

这就是我所拥有的:

 let timestamp;

 let timestampRef = firebase.database().ref("server");

timestampRef.set(firebase.database.ServerValue.TIMESTAMP);
timestampRef.on("value", function(snap) {
  let offset = snap.val();
  let estimatedServerTimeMs = new Date().getTime() + offset;
  console.log("time stamp: ", timestampRef);
  console.log("offset: ", offset);
  console.log("estimatedServerTimeMs: ", estimatedServerTimeMs);
 });

1 个答案:

答案 0 :(得分:0)

您过于复杂了。您不需要任何偏移量即可读取服务器时间戳记令牌写入的时间。自unix纪元以来以毫秒数表示的日期值将以整数形式显示,您可以在服务器解释后将其输入new Date()