Flutter 按日期范围搜索日期

问题描述 投票:0回答:1

我已将数据保存在 Firestore 数据库中为

DateTime.now().millisecondsSinceEpoch;

我希望用户仅使用

datePicker
按日期搜索。

是否可以这样做,或者我是否必须更改数据库中的数据类型? 如果可以的话我该怎么做?

flutter google-cloud-firestore
1个回答
0
投票

如果您将时间戳存储为自纪元以来的毫秒数,则可以使用

>=
<
运算符过滤特定日期或日期范围。

一个简单的例子:

var now = DateTime.now();
var start = DateTime(now.year, now.month, now.day);
var end = start.add(Duration(days: 1));

print(now.millisecondsSinceEpoch);
print(start.millisecondsSinceEpoch);
print(end.millisecondsSinceEpoch);

这里重要的变量:

  • now
    是代码运行时的
    DateTime
  • start
    是一天开始的
    DateTime
  • end
    是第二天开始时的
    DateTime

因此,如果您想将 Firestore 中的字段与这些值进行比较,则类似于:

collectionRef
  .where("timestampField", isGreaterThanOrEqualTo: start)
  .where("timestampField", isLessThan: end)
  ...
© www.soinside.com 2019 - 2024. All rights reserved.