fix: wrong record loss duration

This commit is contained in:
yangsy
2025-09-16 10:54:32 +08:00
parent d7b1536063
commit ac503816bc

View File

@@ -99,16 +99,25 @@ const formatTime = (timeStr: string) => {
const formatDuration = (startTime: string, endTime: string) => { const formatDuration = (startTime: string, endTime: string) => {
const start = dayjs(startTime); const start = dayjs(startTime);
const end = dayjs(endTime); const end = dayjs(endTime);
const diff = end.diff(start); const diffMs = end.diff(start);
const dur = dayjs.duration(diff);
if (dur.asHours() >= 1) { const isNegative = diffMs < 0;
return `${Math.floor(dur.asHours())}小时${dur.minutes()}分钟`; const durAbs = dayjs.duration(Math.abs(diffMs));
} else if (dur.asMinutes() >= 1) {
return `${dur.minutes()}分钟${dur.seconds()}`; const hours = Math.floor(durAbs.asHours());
const minutes = durAbs.minutes();
const seconds = durAbs.seconds();
let result: string;
if (hours > 0) {
result = `${hours}小时${minutes}${seconds}`;
} else if (minutes > 0) {
result = `${minutes}${seconds}`;
} else { } else {
return `${dur.seconds()}`; result = `${seconds}`;
} }
return isNegative ? `-${result}` : result;
}; };
/** /**