timeAgo property
String
get
timeAgo
Human-friendly relative time.
Implementation
String get timeAgo {
final now = DateTime.now();
final difference = now.difference(this);
if (difference.isNegative) {
return _futureTime(difference.abs());
}
if (difference.inSeconds < 10) {
return 'Just now';
}
if (difference.inMinutes < 1) {
final seconds = difference.inSeconds;
return '$seconds ${seconds == 1 ? 'second' : 'seconds'} ago';
}
if (difference.inMinutes < 60) {
final minutes = difference.inMinutes;
return '$minutes ${minutes == 1 ? 'minute' : 'minutes'} ago';
}
if (difference.inHours < 24) {
final hours = difference.inHours;
return '$hours ${hours == 1 ? 'hour' : 'hours'} ago';
}
if (isYesterday) {
return 'Yesterday';
}
if (difference.inDays < 7) {
final days = difference.inDays;
return '$days ${days == 1 ? 'day' : 'days'} ago';
}
if (difference.inDays < 30) {
final weeks = difference.inDays ~/ 7;
return '$weeks ${weeks == 1 ? 'week' : 'weeks'} ago';
}
if (difference.inDays < 365) {
final months = difference.inDays ~/ 30;
return '$months ${months == 1 ? 'month' : 'months'} ago';
}
final years = difference.inDays ~/ 365;
return '$years ${years == 1 ? 'year' : 'years'} ago';
}