在Dart / Flutter中将DateTime转换为时间之前 [英] Converting DateTime to time ago in Dart/Flutter

查看:380
本文介绍了在Dart / Flutter中将DateTime转换为时间之前的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

The question is how to format a Dart DateTime as a string stating the time elapsed similar to the way you see times displayed on Stack Overflow.

有没有更好的选择?比这个方法

Is there any better method than this

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";
}

谢谢,希望对其他人有帮助

Thank you and hope it helps others

推荐答案

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

I used timeago for the exact purpose and found it quite useful. It has multiple format and different languages support as well.

这篇关于在Dart / Flutter中将DateTime转换为时间之前的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆