static formatTimeInterval()

in resources/perf.webkit.org/public/v3/models/build-request.js [132:167]


    static formatTimeInterval(intervalInMillionSeconds)
    {
        let intervalInSeconds = intervalInMillionSeconds / 1000;
        const units = [
            {unit: 'week', length: 7 * 24 * 3600},
            {unit: 'day', length: 24 * 3600},
            {unit: 'hour', length: 3600},
            {unit: 'minute', length: 60},
        ];


        let indexOfFirstSmallEnoughUnit = units.length - 1;
        for (let i = 0; i < units.length; i++) {
            if (intervalInSeconds > 1.5 * units[i].length) {
                indexOfFirstSmallEnoughUnit = i;
                break;
            }
        }

        let label = '';
        let lastUnit = false;
        for (let i = indexOfFirstSmallEnoughUnit; !lastUnit; i++) {
            lastUnit = i == indexOfFirstSmallEnoughUnit + 1 || i == units.length - 1;
            const length = units[i].length;
            const valueForUnit = lastUnit ? Math.round(intervalInSeconds / length) : Math.floor(intervalInSeconds / length);

            const unit = units[i].unit + (valueForUnit == 1 ? '' : 's');
            if (label)
                label += ' ';
            label += `${valueForUnit} ${unit}`;

            intervalInSeconds = intervalInSeconds - valueForUnit * length;
        }

        return label;
    }