2016-08-13 4 views
0

Я использую базу данных firebase для размещения веб-приложения для обмена мгновенными сообщениями. Я закончил базовую реализацию, но теперь хочу добавить временные метки для пользователей, чтобы видеть, когда были отправлены сообщения.Временные метки для сообщений

Чтобы добавить сообщение в чат, я использую firebase.push() со значением как отправленное сообщение. Я думаю, мне придется переключить это на .update() со значением как объект с полями message и time sent.

Я пытаюсь выяснить, как заполнить это time sent. Я слышал о firebase.database.ServerValue.TIMESTAMP, но из того, что я могу сказать, трудно изменить это на дату и время. Я сильно рассматриваю временную метку unix, такую ​​как var unix = Math.round(+new Date()/1000);, так как это легко конвертировать.

Есть ли у кого-нибудь с опытом какие-либо подсказки, в каком направлении я должен взять? Мне не нужна метка времени, чтобы быть точным, просто дата, час и минута.

ответ

2

Когда вы пишете firebase.database.ServerValue.TIMESTAMP узлу, значение становится отметкой времени UNIX. Смотрите Firebase reference documentation для примера, как написать это:

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

Когда вы чтения это значение, вы можете преобразовать его обратно в Date объект с:

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

Чтобы быть последовательным, я буду, вероятно, в конечном итоге используйте это. Насколько я понимаю, это будет преобразовано в местное время на стороне клиента, верно? – Bender