13 lines
620 B
Dart
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';
|
|
}
|