我正在为我的聊天应用程序使用Firebase。在Chat对象中,我使用Firebase.ServerValue.TIMESTAMP
方法添加时间戳。
我需要使用此时间戳在我的聊天应用程序中显示消息接收时间。
如果是当前时间,我只需要显示时间。如果有天差,我需要显示日期和时间,或者只显示日期。
我使用了以下代码来转换Firebase时间戳,但我没有获得实际时间。
var timestamp = '1452488445471';
var myDate = new Date(timestamp*1000);
var formatedTime=myDate.toJSON();
请为这个问题提出解决方案
22条答案
按热度按时间gblwokeq16#
Firebase新版本解决方案(2016年1月后)
将时间戳附加到数据库更新的正确方法是在请求中附加占位符值。在下面的示例中,Firebase将用时间戳替换
createdAt
属性:根据documentation,值
firebase.database.ServerValue.TIMESTAMP
是:“由Firebase数据库服务器自动填充当前时间戳(自Unix时代以来的时间,以毫秒为单位)的占位符值。”balp4ylt17#
对于来自Google的新一代数据库FiRestore,下面的代码将简单地帮助您解决这个问题。
s4n0splo18#
我知道Firebase在
{seconds: '', and nanoseconds: ''}
中给出了转换为日期的时间戳,您只需做:然后
date.toDate()
=>它返回日期。fjnneemd19#
在Firebase内部,函数按如下方式转换时间戳:
此处的文档https://firebase.google.com/docs/reference/js/firebase.firestore.Timestamp
nuypyhwy20#
对于那些正在寻找Firebase Firestore等价物的用户。它是
例如:
Docs
chhkpiq421#
事实上,它只有在我使用的时候才起作用
在命名空间上多了一个“数据库”。
pkln4tw622#
Firebase.ServerValue.TIMESTAMP不是实际的时间戳,它是一个常量,如果您将其设置为某个变量,它将被服务器中的实际值替换。
如果您希望获得服务器时间,则可以使用以下代码