timeAgo property
String
get
timeAgo
Returns a human-readable relative time string.
Example:
DateTime.now().subtract(Duration(hours: 2)).timeAgo;
// '2 hours ago'
Implementation
String get timeAgo {
final now = DateTime.now();
final difference = now.difference(this);
if (difference.inDays > 365) {
final years = (difference.inDays / 365).floor();
return '$years ${years == 1 ? 'year' : 'years'} ago';
} else if (difference.inDays > 30) {
final months = (difference.inDays / 30).floor();
return '$months ${months == 1 ? 'month' : 'months'} ago';
} else if (difference.inDays > 0) {
return '${difference.inDays} ${difference.inDays == 1 ? 'day' : 'days'} ago';
} else if (difference.inHours > 0) {
return '${difference.inHours} ${difference.inHours == 1 ? 'hour' : 'hours'} ago';
} else if (difference.inMinutes > 0) {
return '${difference.inMinutes} ${difference.inMinutes == 1 ? 'minute' : 'minutes'} ago';
} else if (difference.inSeconds > 0) {
return '${difference.inSeconds} ${difference.inSeconds == 1 ? 'second' : 'seconds'} ago';
} else {
return 'Just now';
}
}