Private/Get-DurationString.ps1

function Get-DurationString {
    <#
    .SYNOPSIS
        Internal helper - calculates duration from a given time to now and
        returns it as a human-readable string (e.g. '2d 4h 17m').
    #>

    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [DateTime]$StartTime
    )

    $duration = (Get-Date) - $StartTime

    if ($duration.TotalDays -ge 1) {
        return "{0}d {1}h {2}m" -f [int]$duration.TotalDays, $duration.Hours, $duration.Minutes
    }
    elseif ($duration.TotalHours -ge 1) {
        return "{0}h {1}m" -f [int]$duration.TotalHours, $duration.Minutes
    }
    else {
        return "{0}m {1}s" -f [int]$duration.TotalMinutes, $duration.Seconds
    }
}