Firebase 时间戳值及查询 | JavaScript

Posted

技术标签:

【中文标题】Firebase 时间戳值及查询 | JavaScript【英文标题】:Firebase Time Stamp Value And Query | JavaScript 【发布时间】:2017-09-10 13:19:39 【问题描述】:

我不想使用移动应用程序(iosandroid)在 Firebase 中保存一些数据,并通过具有不同查询的 Web 应用程序获取这些数据,每个数据节点都包含日期、用户 ID 等。

更新:我使用下面的 javascript 代码从 Firebase 获取仅在今天发布的数据(将日期设置为早上,这样它就可以全天获取数据,并且不会随着每次页面刷新或重新打开而更改)

var currentdate = new Date();
currentdate.setHours(0,0,0,0);
ref.orderByChild("orderDate").startAt(currentdate.getTime()).on('child_added', function (snapshot) 
 var test = snapshot.child("orderTotal").val();
window.alert(test);
);

currentdate.getTime() 值为:1492462800000 = Mon, 17 Apr 2017 21:00:00 GMT 这是昨天 @ 09:00 PM 而不是午夜上午 12:00 ? 而且我今天还向 Firebase 发布了一些数据 2017 年 4 月 18 日星期二,根据我的查询 startAt(currentdate.getTime()) 它应该返回今天的帖子,但它什么也没返回? 我已经用我的 1 个帖子日期替换了 currentdate.getTime() 并且它的工作正常 1492524624

请有人告诉我这里有什么问题吗?

【问题讨论】:

看看这个转换器。 -> currentmillis.com 见***.com/questions/17637408/…。本质上,您使用的这两项服务和设备似乎都使用不同的时区将时间戳转换为显示日期。由于 Firebase 中存储了一个值(自 1970 年 1 月 1 日午夜以来的毫秒数),因此 Firebase 对此无能为力。 【参考方案1】:

这似乎是时区差异。 Check this answer out

您基本上是以一种时区格式存储所有内容,然后为每个客户端进行转换。

【讨论】:

所以根据这个问题,你发布这不应该影响我的查询,对吧?

以上是关于Firebase 时间戳值及查询 | JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

Oracle - 从时间戳值导出分钟

加入两个表后 Hive 时间戳值更改

如何在 cur.execute 中使用 python 返回有效的时间戳值

sql之间的几个时间戳值信息

期望时间戳值Cassandra的长或日期字符串表示

iOS日期转换器返回正确的日期[重复]