Files
manager/lib/core/utils/relative_time.dart
2026-07-27 14:42:23 +02:00

13 lines
620 B
Dart

/// Formats a past [DateTime] as a short relative string ("2h ago",
/// "5d ago") for activity feeds and stat-tile captions — full timestamps
/// belong in tables (as [MonoText]), not here.
String formatRelative(DateTime dateTime) {
final diff = DateTime.now().difference(dateTime);
if (diff.inSeconds < 45) return 'just now';
if (diff.inMinutes < 60) return '${diff.inMinutes}m ago';
if (diff.inHours < 24) return '${diff.inHours}h ago';
if (diff.inDays < 7) return '${diff.inDays}d ago';
if (diff.inDays < 30) return '${(diff.inDays / 7).floor()}w ago';
return '${(diff.inDays / 30).floor()}mo ago';
}