一尘不染

在Dart / Flutter中将DateTime转换为时间之前

flutter

问题是如何将Dart DateTime格式化为字符串,说明经过的时间,类似于您看到Stack Overflow上显示的时间的方式。

有没有比这更好的方法了

String timeAgo(DateTime d) {
 Duration diff = DateTime.now().difference(d);
 if (diff.inDays > 365)
  return "${(diff.inDays / 365).floor()} ${(diff.inDays / 365).floor() == 1 ? "year" : "years"} ago";
 if (diff.inDays > 30)
  return "${(diff.inDays / 30).floor()} ${(diff.inDays / 30).floor() == 1 ? "month" : "months"} ago";
 if (diff.inDays > 7)
  return "${(diff.inDays / 7).floor()} ${(diff.inDays / 7).floor() == 1 ? "week" : "weeks"} ago";
 if (diff.inDays > 0)
  return "${diff.inDays} ${diff.inDays == 1 ? "day" : "days"} ago";
 if (diff.inHours > 0)
  return "${diff.inHours} ${diff.inHours == 1 ? "hour" : "hours"} ago";
 if (diff.inMinutes > 0)
  return "${diff.inMinutes} ${diff.inMinutes == 1 ? "minute" : "minutes"} ago";
 return "just now";
}

谢谢你,希望对别人有帮助


阅读 554

收藏
2020-08-13

共1个答案

一尘不染

我将timeago用于确切的目的,并发现它非常有用。它具有多种格式,并且还支持不同的语言。

2020-08-13