我正在为我的聊天应用程序使用Firebase。在Chat对象中,我使用Firebase.ServerValue.TIMESTAMP
方法添加时间戳。
我需要使用此时间戳在我的聊天应用程序中显示消息接收时间。
如果是当前时间,我只需要显示时间。如果有天差,我需要显示日期和时间,或者只显示日期。
我使用了以下代码来转换Firebase时间戳,但我没有获得实际时间。
var timestamp = '1452488445471';
var myDate = new Date(timestamp*1000);
var formatedTime=myDate.toJSON();
请为这个问题提出解决方案
22条答案
按热度按时间e0bqpujr1#
试试这个,
ou6hu8tu2#
Firebase.ServerValue.TIMESTAMP
is the same asnew Date().getTime()
.Convert it:
gfttwv5a3#
This code is work for me
gojuced74#
First Of All
Firebase.ServerValue.TIMESTAMP
is not working anymore for me.So for adding timestamp you have to use
Firebase.database.ServerValue.TIMESTAMP
And the timestamp is in long millisecond format.To convert millisecond to simple dateformat .
Ex- dd/MM/yy HH:mm:ss
You can use the following code in java:
To get the timestamp value in string from the firebase database
The data is in string now. You can convert the
string
tolong
Then create SimpleDateFormat
Now convert your millisecond timestamp to ur sdf format
After that you can parse it to ur
Date
variabled6kp6zgx5#
wdebmtf26#
I converted to this format
06odsfpq7#
对我来说,当时间戳是整数而不是字符串时,它是有效的:
iibxawm48#
遍历这段代码就是为我工作的准确代码。
dddzy1tm9#
6yt4nkrj10#
xwbd5t1u11#
new Date(timestamp.toDate()).toUTCString()
ao218c7q12#
Timestamp
是一个对象:c3frrgcw13#
这很简单。使用该函数获取服务器时间戳,单位为毫秒仅一次:
现在你可以在任何地方使用它,就像这样:
为什么使用这种方式?
根据最新的Firebase文档,您应该将Firebase时间戳转换为毫秒。因此您可以使用下面的
estimatedServerTimeMs
变量:虽然Firebase.datase.ServerValue.TIMESTAMP要准确得多,而且对于大多数读/写操作来说也更可取,但有时估计客户端相对于Firebase实时数据库服务器的时钟偏差可能很有用。您可以将回调附加到位置/.info/serverTimeOffset,以获取Firebase实时数据库客户端添加到本地报告时间(以毫秒为单位的纪元时间)以估计服务器时间的值(以毫秒为单位)。请注意,此偏移量的准确性可能会受到网络延迟的影响,因此主要用于发现时钟时间中的较大(>1秒)差异。
https://firebase.google.com/docs/database/web/offline-capabilities
wwodge7n14#
使用Firebase Firestone 18.0.1(com.google.Firebase.Timestamp)
pw136qt215#
下面是一个将值从Firebase Timestamp类型转换为JS Date的安全方法,如果该值不是Timestamp,则该方法会按原样返回该值
适用于7/8/9角