将Firebase时间戳转换为当前时间或其他可用形式。
将Firebase时间戳转换为当前时间或其他可用形式。
我正在尝试使用Firebase的时间戳,但我不理解JavaScript的文档。你如何将检索到的值转换成时间(例如下午4点)?我一直在使用这个页面: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); });