getChatTimeFormat static method

String getChatTimeFormat(
  1. DateTime timestamp
)

Implementation

static String getChatTimeFormat(DateTime timestamp) {
  final now = DateTime.now();
  final difference = now.difference(timestamp);
  // AppUtils.log('currentTime :: ${now.toUtc().toLocal()}');
  // AppUtils.log('chatTime :: ${timestamp.toLocal()}');

  if (difference.inSeconds < 60) {
    return 'a sec ago';
  } else if (difference.inMinutes == 1) {
    return 'a min ago';
  } else if (difference.inMinutes < 60) {
    return '${difference.inMinutes} min ago';
  } else if (difference.inHours == 1) {
    return '1 hr ago';
  } else if (difference.inHours < 24) {
    return '${difference.inHours} hr ago';
  } else if (difference.inDays == 1) {
    return 'yesterday';
  } else if (difference.inDays < 7) {
    switch (timestamp.weekday) {
      case DateTime.monday:
        return 'Monday';
      case DateTime.tuesday:
        return 'Tuesday';
      case DateTime.wednesday:
        return 'Wednesday';
      case DateTime.thursday:
        return 'Thursday';
      case DateTime.friday:
        return 'Friday';
      case DateTime.saturday:
        return 'Saturday';
      case DateTime.sunday:
        return 'Sunday';
      default:
        return '';
    }
  } else {
    final isCurrentYear = timestamp.year == now.year;
    final formattedTime = DateFormat('hh:mma').format(timestamp);
    final formattedDate = DateFormat('dd MMM').format(timestamp);
    final formattedYear = DateFormat('yyyy').format(timestamp);

    if (isCurrentYear) {
      return '$formattedTime $formattedDate';
    } else {
      return '$formattedTime $formattedDate $formattedYear';
    }
  }
}