seconds static method

String seconds(
  1. num? secs
)

Formats raw seconds into a human-readable duration (e.g. "1d 2h 3m 4s").

Implementation

static String seconds(num? secs) {
  if (secs == null) return "";
  if (secs <= 0) return "0s";

  final d = (secs / (3600 * 24)).floor();
  final h = ((secs % (3600 * 24)) / 3600).floor();
  final m = ((secs % 3600) / 60).floor();
  final s = (secs % 60).floor();

  final parts = <String>[];
  if (d > 0) parts.add("${d}d");
  if (h > 0 || parts.isNotEmpty) parts.add("${h}h");
  if (m > 0 || parts.isNotEmpty) parts.add("${m}m");
  parts.add("${s}s");

  return parts.join(" ");
}