2016-08-13 9 views
0

Ich verwende Firebase-Datenbank, um eine Echtzeit-Messaging-Web-App zu hosten. Ich habe die grundlegende Implementierung abgeschlossen, möchte aber jetzt Zeitstempel für Benutzer hinzufügen, um zu sehen, wann Nachrichten gesendet wurden.Zeitstempel für Nachrichten

Um eine Nachricht zu einem Chatroom hinzuzufügen, verwende ich firebase.push() mit dem Wert als gesendete Nachricht. Ich denke, ich muss das auf .update() mit dem Wert als Objekt mit den Feldern message und time sent umstellen.

Ich versuche herauszufinden, wie Sie diese time sent bevölkern. Ich habe von firebase.database.ServerValue.TIMESTAMP gehört, aber von dem, was ich sagen kann, ist es schwer, das in ein Datum und eine Zeit zu ändern. Ich erwäge einen Unix-Zeitstempel wie diesen var unix = Math.round(+new Date()/1000);, da dies einfach zu konvertieren ist.

Hat jemand mit Erfahrung irgendwelche Tipps, welche Richtung ich nehmen sollte? Ich brauche den Zeitstempel nicht, um genau zu sein, nur Datum, Stunde und Minute.

Antwort

2

Wenn Sie firebase.database.ServerValue.TIMESTAMP in einen Knoten schreiben, wird der Wert zu einem UNIX-Zeitstempel. Siehe die Firebase reference documentation für ein Beispiel, wie dies schreiben:

var sessionsRef = firebase.database().ref('sessions'); 
var mySessionRef = sessionsRef.push(); 
mySessionRef.update({ startedAt: firebase.database.ServerValue.TIMESTAMP }); 

Wenn Sie lesen Sie diesen Wert, können Sie es zurück in ein Date Objekt mit umwandeln kann:

sessionsRef.on('child_added', function(snapshot) { 
    var startedAt = new Date(snapshot.val().startedAt); 
}); 
+0

Um konsistent sein, ich werde wahrscheinlich Am Ende benutze dies dann. Soweit ich weiß, wird dies auf der Client-Seite in lokale Zeit konvertiert, richtig? – Bender