formatRelative static method
- DateTime date
Formats a date in a relative format (e.g., "2 days ago", "in 3 months").
Implementation
static String formatRelative(DateTime date) {
final now = DateTime.now();
final difference = now.difference(date);
if (difference.inDays == 0) {
if (difference.inHours == 0) {
if (difference.inMinutes == 0) {
return 'Just now';
}
return '${difference.inMinutes} minutes ago';
}
return '${difference.inHours} hours ago';
} else if (difference.inDays < 7) {
return '${difference.inDays} days ago';
} else if (difference.inDays < 30) {
final weeks = (difference.inDays / 7).floor();
return '$weeks ${weeks == 1 ? 'week' : 'weeks'} ago';
} else if (difference.inDays < 365) {
final months = (difference.inDays / 30).floor();
return '$months ${months == 1 ? 'month' : 'months'} ago';
} else {
final years = (difference.inDays / 365).floor();
return '$years ${years == 1 ? 'year' : 'years'} ago';
}
}