toTimeAgo property

String get toTimeAgo

Returns time ago with automatic updates (for real-time chat)

Implementation

String get toTimeAgo {
  final now = DateTime.now();
  final localTime = toLocal();
  final difference = now.difference(localTime);

  if (difference.inSeconds < 30) {
    return 'now';
  } else if (difference.inMinutes < 1) {
    return '${difference.inSeconds}s';
  } else if (difference.inHours < 1) {
    return '${difference.inMinutes}m';
  } else if (difference.inDays < 1) {
    return '${difference.inHours}h';
  } else if (difference.inDays < 30) {
    return '${difference.inDays}d';
  } else if (difference.inDays < 365) {
    return '${(difference.inDays / 30).floor()}mo';
  } else {
    return '${(difference.inDays / 365).floor()}y';
  }
}