timeAgoString method
Implementation
String timeAgoString(
int timestamp,
) {
DateTime date = DateTime.fromMillisecondsSinceEpoch(timestamp);
final date2 = DateTime.now();
final difference = date2.difference(date);
final years = (difference.inDays / 365).floor();
if (difference.inDays > 364) {
return "${years == 1 ? "Last" : years} ${years == 1 ? "year" : "years ago"}";
} else if (difference.inDays > 28 && difference.inDays <= 366) {
double averageDaysInMonth =
(daysInMonth_leapYear.fold<int>(0, (a, b) => a + b)) / 12;
int totalMonths = (difference.inDays / averageDaysInMonth).round();
return "${totalMonths == 1 ? "Last" : totalMonths} ${totalMonths == 1 ? "month" : "months ago"}";
} else if ((difference.inDays / 7).floor() >= 1) {
return 'Last week';
} else if (difference.inDays >= 2) {
return '${difference.inDays} days ago';
} else if (difference.inDays >= 1) {
return 'Yesterday';
} else if (difference.inHours > 1) {
return '${difference.inHours} hours ago';
} else if (difference.inHours == 1) {
return 'A hour ago';
} else if (difference.inMinutes >= 13 && difference.inMinutes <= 17) {
return 'Quarter hour ago';
} else if (difference.inMinutes <= 32 && difference.inMinutes >= 28) {
return 'Half hour ago';
} else if (difference.inMinutes >= 2) {
return '${difference.inMinutes} minutes ago';
} else if (difference.inMinutes >= 1) {
return 'A minute ago';
} else if (difference.inSeconds > 4) {
return '${difference.inSeconds} seconds ago';
} else {
return 'Just now';
}
}