我如何获得颤振中的日期月年值



我创建了会议页面,它有两个选项卡栏视图,一个是即将到来的,另一个是完成的会议,所以我使用的条件,但它只需要日期,但我想日期月和年。这是我的代码。

StreamBuilder(
stream:meeting
.where("Meeting Type",isEqualTo: type)
.where("Meeting Date",isLessThanOrEqualTo: DateFormat('dd/MM/yyyy').format(DateTime.now()))
.snapshots(),
builder:(context,AsyncSnapshot<QuerySnapshot>streamSnapshot){
if (streamSnapshot.hasData){
QuerySnapshot<Object?>?querySnapshot = streamSnapshot.data;
List<QueryDocumentSnapshot> documents = querySnapshot!.docs;
List<Map>items = documents.map((e)=>{
"Meeting Date":e['Meeting Date'],
"Meeting Name":e['Meeting Name'],
"Place":e['Place'],
"Time From":e['Time From'],
"To Time":e['To Time']
}).toList();

会议开始时应该显示在即将到来的页面中,会议结束后应该显示在已完成的页面中。

我们这里有两种可能性:

1。您的会议日期作为字符串存储在您的基中。

请注意,您可能不需要这样存储时间,而是使用Firestore提供的时间戳。

但是在这种情况下,您的.where("Meeting Date",isLessThanOrEqualTo:将按字典顺序执行日期之间的比较。

因此,您需要一种能够匹配时间顺序和词汇顺序的格式,如YYYY-MM-DD(任何年/月/日格式都可以)。

它可能需要更新你在Firestore中的现有文档来匹配它。

StreamBuilder(
stream:meeting
.where("Meeting Type",isEqualTo: type)
.where("Meeting Date",isLessThanOrEqualTo: DateFormat('yyyy/MM/dd').format(DateTime.now()))//Use a format who order String in the same order as time
.snapshots(),
builder:(context,AsyncSnapshot<QuerySnapshot>streamSnapshot){
if (streamSnapshot.hasData){
QuerySnapshot<Object?>?querySnapshot = streamSnapshot.data;
List<QueryDocumentSnapshot> documents = querySnapshot!.docs;
List<Map>items = documents.map((e)=>{
"Meeting Date":e['Meeting Date'],
"Meeting Name":e['Meeting Name'],
"Place":e['Place'],
"Time From":e['Time From'],
"To Time":e['To Time']
}).toList();

2。会议日期作为时间戳存储在base中。

在这种情况下,不需要格式化,您可以将时间传递给您的查询。

StreamBuilder(
stream:meeting
.where("Meeting Type",isEqualTo: type)
.where("Meeting Date",isLessThanOrEqualTo: Timestamp.now())//Using the Timestamp object provided by the firestore library
.snapshots(),
builder:(context,AsyncSnapshot<QuerySnapshot>streamSnapshot){
if (streamSnapshot.hasData){
QuerySnapshot<Object?>?querySnapshot = streamSnapshot.data;
List<QueryDocumentSnapshot> documents = querySnapshot!.docs;
List<Map>items = documents.map((e)=>{
"Meeting Date":e['Meeting Date'],
"Meeting Name":e['Meeting Name'],
"Place":e['Place'],
"Time From":e['Time From'],
"To Time":e['To Time']
}).toList();

最新更新