【问题标题】:Timestamps for messages消息的时间戳
【发布时间】:2016-08-13 07:19:55
【问题描述】:

我正在使用 firebase 的数据库来托管一个实时消息网络应用程序。我已经完成了基本实现,但现在想为用户添加时间戳以查看消息的发送时间。

要向聊天室添加消息,我使用 firebase.push() 并将值作为发送的消息。我想我必须将其切换为.update(),并将值作为具有messagetime sent 字段的对象。

我正试图弄清楚如何填充这个time sent。我听说过firebase.database.ServerValue.TIMESTAMP,但据我所知,很难将其更改为日期和时间。我正在认真考虑像 var unix = Math.round(+new Date()/1000); 这样的 unix 时间戳,因为它很容易转换。

有任何经验的人对我应该采取的方向有什么建议吗?我不需要时间戳非常精确,只需要日期、小时和分钟。

【问题讨论】:

    标签: javascript web firebase firebase-realtime-database


    【解决方案1】:

    当您将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);
    });
    

    【讨论】:

    • 为了保持一致,我可能最终会使用它。据我了解,这将在客户端转换为本地时间,对吗?
    猜你喜欢
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-03-06
    • 2015-05-27
    相关资源
    最近更新 更多