javascript - 将 Firebase 时间戳转换为当前时间或其他可用形式
问题描述
我正在尝试使用 Firebase 的时间戳,但我不了解 JavaScript 的文档。您如何将检索到的值转换为时间(即下午 4:00)这是我一直在使用的页面: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);
});
解决方案
你把事情复杂化了。您不需要任何偏移量来读取服务器时间戳令牌写入的时间。日期值表示为自 unix 纪元以来的毫秒数,它将仅显示为一个整数,您可以new Date()
在服务器解释它之后提供给它。
推荐阅读
- python - BS4 通过抓取表格给出一个奇怪的随机输出
- java - Java Selenium WebDriverWait 等待的时间比指定的等待时间长
- python - 为什么 pdfplumber 不产生任何数据?
- javascript - 如何在模板中通过javascript对从django传递的json进行编码
- java - 从响应中保存值并检查是否为空加特林
- google-apps-script - Google 幻灯片:通过脚本操作指南
- fortran - 可视化 Fortran 程序的结构
- c# - 使用 TLSharp 创建一个新的 Telegram 频道并修复权限/权限
- java - 我想制作一个带有处理的二维数组
- android - 如何使用共享首选项在活动之间切换?