timeAgo static method

String timeAgo(
  1. DateTime from, {
  2. DateTime? to,
})

Returns difference between from and to as human readable string.

Implementation

static String timeAgo(DateTime from, {DateTime? to}) {
  final now = to ?? DateTime.now();
  final diff = now.difference(from);

  if (diff.inSeconds < 60) return 'just now';
  if (diff.inMinutes < 60) return '${diff.inMinutes} minute(s) ago';
  if (diff.inHours < 24) return '${diff.inHours} hour(s) ago';
  if (diff.inDays < 7) return '${diff.inDays} day(s) ago';
  if (diff.inDays < 30) return '${(diff.inDays / 7).floor()} week(s) ago';
  if (diff.inDays < 365) return '${(diff.inDays / 30).floor()} month(s) ago';
  return '${(diff.inDays / 365).floor()} year(s) ago';
}