Преобразовать временную метку Firebase в текущее время или другую используемую форму - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь использовать временную метку 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;
    });

чтобы получить метку времени и перекос часов клиента. Так как вы извлекаете «Значение заполнителя для автоматического заполнения текущей временной метки (времени с начала Unix в миллисекундах), как это определено серверами Firebase», кажется, что вы не можете сделать это так, как здесь спросил человек, каким образом Я бы сделал это: TIMESTAMP Firebase на дату и время

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 голосов
/ 18 ноября 2018

Вы слишком усложняете вещи.Вам не нужно смещений, чтобы прочитать время, записанное токеном метки времени сервера.Значение даты, выраженное в виде количества миллисекунд, так как эпоха Unix будет отображаться как целое число, которое вы можете передать new Date() после того, как оно будет интерпретировано сервером.

...