List<DateTime> newList = [];
DateFormat format = DateFormat("yyyy-MM-dd");
for (var i = 0; i < recents.length; i++) {
newList.add(format.parse(recents[i]['date'].toString()));
}
newList.sort(((a, b) => a.compareTo(b)));
var total = 0;
for (var i = 0; i < newList.length; i++) {
if (DateTime.now().difference(newList[i]).inDays < 30) {
print(newList[i]);
total++;
}
}
print(total);
9条答案
按热度按时间alen0pnh1#
你可以用
与
你得到
通常,在进行日期计算之前,最好先转换为UTC,然后再转换回本地日期/时间,以避免夏令时和时区问题。
ohtdti5x2#
我们可以计算每月的第一天和最后一天:
DateTime.utc
接受整数值作为参数:整数年、整数月、整数日等等。tpxzln5u3#
试试这个包Jiffy,它使用momentjs语法。
其中
Jiffy()
返回date now。您也可以执行以下操作,得到相同的结果uinbv5nw4#
我们可以使用减法来得到过去的月份日期。
m3eecexj5#
日期是很难计算的。有一个公开的提议,在这里添加对添加年和月的支持https://github.com/dart-lang/sdk/issues/27245。
添加月份和年份有一个语义问题,因为“a month”和“a year”不是一个特定的时间量。年份相差一天,月份相差三天。将“a month”添加到1月30日是不明确的。我们可以这样做,我们只需要在2月27日和3月2日之间任意选择一天,这就是为什么我们没有在Duration中添加月份和年份-它们没有描述持续时间。
你可以用下面的代码任意添加月份(我猜它并不完全准确,摘自本期)
5sxhfpxr6#
要在月初获得一个设定的起点,可以将
DateTime
与Jiffy包沿着使用。或
643ylb087#
日期格式(“年-月-日”).格式(日期时间(DateTime.now().年,日期时间.现在().月-2)),
mbjcgjjk8#
您可以使用此选项获取最近30天的信息。
pinkon5k9#
除了君特·策施鲍尔