- const hours = Math.floor(duration / (3600 * 1000));
- const minutes = Math.floor((duration / 1000 - hours * 3600) / 60);
- const seconds = duration / 1000 - hours * 3600 - minutes * 60;
- let hoursStr = hours.toString();
- let minutesStr = minutes.toString();
- let secondsStr = seconds.toString();
-
- if (hours < 10) {
- hoursStr = `0${hours.toString()}`;
- }
- if (minutes < 10) {
- minutesStr = `0${minutes.toString()}`;
- }
- if (seconds < 10) {
- secondsStr = `0${seconds.toString()}`;
- }
- return `${hoursStr}:${minutesStr}:${secondsStr.substring(0, 6)}`;
+ const days = Math.floor(duration / (24 * 3600 * 1000));
+ const hours = Math.floor(millisecondsToHours(duration) - days * 24);
+ const minutes = Math.floor(
+ millisecondsToMinutes(duration) - days * 24 * 60 - hoursToMinutes(hours),
+ );
+ const seconds = Math.floor(
+ millisecondsToSeconds(duration) -
+ days * 24 * 3600 -
+ hoursToSeconds(hours) -
+ minutesToSeconds(minutes),
+ );
+ return formatDuration({
+ days,
+ hours,
+ minutes,
+ seconds,
+ });