[英]how i get date month year values in flutter
我創建了會議頁面,它有兩個標簽欄視圖,一個是即將到來的,另一個是已完成的會議,所以我使用了 where 條件,但它只需要日期,但我想要日期月份和年份。這是我的代碼。
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. 您的會議日期作為時間戳存儲在您的基地
在這種情況下,不需要格式化,您可以按原樣將時間傳遞給您的查詢。
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.