getChatTimeFormat static method
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';
}
}
}