TomTom Maps for JavaScript
    Preparing search index...

    Function formatDuration

    • Formats a duration in seconds into a human-readable time string.

      Converts raw seconds into a display-friendly format using hours and minutes, with intelligent rounding and formatting based on the duration length.

      Parameters

      • seconds: number | undefined

        The duration to format, given in seconds. Returns undefined for values < 30 seconds.

      • Optionaloptions: TimeDisplayUnits

        Optional custom display units for hours and minutes text.

      Returns string | undefined

      Formatted time string (e.g., "1 hr 30 min", "45 min"), or undefined if duration is too short.

      Rounding Behavior:

      • Durations under 30 seconds return undefined
      • 30-59 seconds round to "1 min"
      • Minutes are rounded to nearest minute
      • Hours are displayed when duration ≥ 1 hour

      Format Patterns:

      • Short duration: "15 min"
      • Long duration: "2 hr 30 min"
      • Exact hours: "3 hr 00 min"

      Customization: Override default units via options or global TomTomConfig

      // Basic usage
      formatDuration(0); // undefined (too short)
      formatDuration(20); // undefined (too short)
      formatDuration(30); // "1 min"
      formatDuration(60); // "1 min"
      formatDuration(100); // "2 min"
      formatDuration(1800); // "30 min"
      formatDuration(3599); // "1 hr 00 min"
      formatDuration(3660); // "1 hr 01 min"
      formatDuration(7200); // "2 hr 00 min"
      formatDuration(36120); // "10 hr 02 min"

      // Custom units
      formatDuration(3660, { hours: 'h', minutes: 'm' });
      // Returns: "1 h 01 m"

      // Route travel time
      const route = await calculateRoute({ ... });
      const travelTime = formatDuration(route.routes[0].summary.travelTimeInSeconds);
      console.log(`Estimated time: ${travelTime}`);
      // Output: "Estimated time: 2 hr 15 min"