timeAgoNumeric method

String timeAgoNumeric(
  1. int timestamp
)

Implementation

String timeAgoNumeric(
  int timestamp,
) {
  DateTime date = DateTime.fromMillisecondsSinceEpoch(timestamp);

  final date2 = DateTime.now();
  final difference = date2.difference(date);
  final years = (difference.inDays / 365).round();
  if (difference.inDays > 365) {
    return "$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 ${totalMonths == 1 ? "month" : "months"} ago";
  } else if ((difference.inDays / 7).floor() >= 1) {
    return '1 week ago';
  } else if (difference.inDays >= 2) {
    return '${difference.inDays} days ago';
  } else if (difference.inDays >= 1) {
    return '1 day ago';
  } else if (difference.inHours >= 2) {
    return '${difference.inHours} hours ago';
  } else if (difference.inHours >= 1) {
    return '1 hour ago';
  } else if (difference.inMinutes >= 2) {
    return '${difference.inMinutes} minutes ago';
  } else if (difference.inMinutes >= 1) {
    return '1 minute ago';
  } else if (difference.inSeconds >= 3) {
    return '${difference.inSeconds} seconds ago';
  } else {
    return 'Just now';
  }
}