簡體   English   中英

Flutter 基於上周、上月和去年的過濾列表

[英]Flutter filter list based on last week, last month and last year

我有 map 的列表,其中有一個日期字段。 在屏幕上我有過濾選項,我可以根據上周、上個月和去年過濾數據,所以不知道如何才能達到結果。

下面是我的代碼

 _listOfHistory.addAll(
         _listStaticRoundForHistory.
         where((element) {
           final date = element.date;
           return date == date.subtract(Duration(days: 30));
         }
     ).toList());

但很確定這是錯誤的。

響應列表

[
 {
   "title": "title",
   "details": "details",
   "date": DateTime
 },
 {
   "title": "title",
   "details": "details",
   "date": DateTime
 }
 .
 .
 .
 .
]

我可以根據上周、上個月和去年過濾數據

首先,您需要知道今天是哪一天,以便減去天、月或年。

var now = new DateTime.now();
var now_1w = now.subtract(Duration(days: 7)); 
var now_1m = new DateTime(now.year, now.month-1, now.day);
var now_1y = new DateTime(now.year-1, now.month, now.day);

編輯然后在您的代碼中,您只需要評估現在是否在您上面創建的任何日期之后,例如 1 周:

where((element) {
           final date = element.date;
           return now_1w.isBefore(date);
         }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM