【发布时间】:2022-01-07 04:07:09
【问题描述】:
使用日期范围查询时返回错误的结果。
我正在使用 DateRangePicker jQuery 来选择日期范围和时间范围。
然后我点击我的 api 并将我的日期/时刻 js 对象发送到我的节点 js api,我在该 api 上查询 firestore 以获取在特定日期范围内添加的文档!
这是我的代码:
api.get('/getDoc', async function(req,res){
var start = new Date(req.query.fromDateData);
var end = new Date(req.query.toDateData);
ref = db.collection(req.query.brand);
if(! req.query.alert==''){
ref = ref.where(req.query.alert,'==',true);
}
ref= ref.where('firebaseAddDate', '>', start).where('firebaseAddDate', '<', end).orderBy('firebaseAddDate', 'desc');
ref = await ref.limit(50).get();
如果我输入这个日期:
fromDateData: 'Mon Nov 29 2021 00:00:00 GMT 0500 (Pakistan Standard Time)',
toDateData: 'Mon Nov 29 2021 23:59:00 GMT 0500 (Pakistan Standard Time)',
我得到结果
Mon Nov 29 2021 04:xx:00
Tue Nov 30 2021 04:xx:00
我比定义的时间提前 5 小时获得结果。不知道如何处理这个问题,我尝试过更改偏移量并使用 utc 和使用纪元时间。但无法处理。 这是我要查询的变量:
【问题讨论】:
-
您的问题不是很清楚,但您应该注意 Firestore 中的日期/时间以 UTC 格式存储。也许这会帮助你找出你的问题
-
@NoCommandLine 让我用 utc 再次检查一下,我会跟进!
标签: node.js angularjs firebase google-cloud-platform google-cloud-firestore