Select 时间戳为今天的 Firebase firestore 集合
Select Firebase firestore collection where timestamp is today
大家好,
我有一个 firetore 文档集合,它们都有一个时间戳数据类型的 dateCreated 字段。我想 select 所有今天 dateCreated 所在的文档。我将如何实现这一目标。我试过下面没有成功
const ref = firestore.collection('orders').where('dateCreated','<',moment().toDate()).orderBy('dateCreated', 'desc');
上面一行从集合中获取所有订单,我想要今天创建的所有订单。希望这是有道理的
谢谢大家
如果您是相对于用户自己的时区而不是基于固定时区(例如,您在东海岸,但总部在西海岸),您可以使用:
// for numeric timestamp values (milliseconds since 1970-01-01 UTC)
const midnightThisMorning = (new Date()).setHours(0,0,0,0);
const ref = firestore.collection('orders')
.where('dateCreated', '>', midnightThisMorning)
.orderBy('dateCreated', 'desc');
// for firebase.firestore.Timestamp values
const startDate = new Date();
startDate.setHours(0,0,0,0);
const ref = firestore.collection('orders')
.where('dateCreated', '>', startDate)
.orderBy('dateCreated', 'desc');
如果您知道时间必须与特定时区相关,则需要改为根据该时区计算午夜。
// for numeric timestamp values (milliseconds since 1970-01-01 UTC)
const midnightInLA = moment()
.tz("America/Los_Angeles")
.startOf("day")
.valueOf();
const ref = firestore.collection('orders')
.where('dateCreated', '>', midnightInLA)
.orderBy('dateCreated', 'desc');
// for firebase.firestore.Timestamp values
const dateMidnightInLA = moment()
.tz("America/Los_Angeles")
.startOf("day")
.toDate();
const ref = firestore.collection('orders')
.where('dateCreated', '>', dateMidnightInLA)
.orderBy('dateCreated', 'desc');
注意: 使用 moment-timezone
,如果您只使用 select 时区,您可以使用这些时区而不是所有时区的详细信息部署代码. the documentation.
中详细介绍了此过程
大家好,
我有一个 firetore 文档集合,它们都有一个时间戳数据类型的 dateCreated 字段。我想 select 所有今天 dateCreated 所在的文档。我将如何实现这一目标。我试过下面没有成功
const ref = firestore.collection('orders').where('dateCreated','<',moment().toDate()).orderBy('dateCreated', 'desc');
上面一行从集合中获取所有订单,我想要今天创建的所有订单。希望这是有道理的
谢谢大家
如果您是相对于用户自己的时区而不是基于固定时区(例如,您在东海岸,但总部在西海岸),您可以使用:
// for numeric timestamp values (milliseconds since 1970-01-01 UTC)
const midnightThisMorning = (new Date()).setHours(0,0,0,0);
const ref = firestore.collection('orders')
.where('dateCreated', '>', midnightThisMorning)
.orderBy('dateCreated', 'desc');
// for firebase.firestore.Timestamp values
const startDate = new Date();
startDate.setHours(0,0,0,0);
const ref = firestore.collection('orders')
.where('dateCreated', '>', startDate)
.orderBy('dateCreated', 'desc');
如果您知道时间必须与特定时区相关,则需要改为根据该时区计算午夜。
// for numeric timestamp values (milliseconds since 1970-01-01 UTC)
const midnightInLA = moment()
.tz("America/Los_Angeles")
.startOf("day")
.valueOf();
const ref = firestore.collection('orders')
.where('dateCreated', '>', midnightInLA)
.orderBy('dateCreated', 'desc');
// for firebase.firestore.Timestamp values
const dateMidnightInLA = moment()
.tz("America/Los_Angeles")
.startOf("day")
.toDate();
const ref = firestore.collection('orders')
.where('dateCreated', '>', dateMidnightInLA)
.orderBy('dateCreated', 'desc');
注意: 使用 moment-timezone
,如果您只使用 select 时区,您可以使用这些时区而不是所有时区的详细信息部署代码. the documentation.