32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
export function formatTime(totalSeconds) {
|
|
const isNegative = totalSeconds < 0;
|
|
if (isNegative) {
|
|
totalSeconds = -totalSeconds;
|
|
}
|
|
|
|
const minutes = Math.floor(totalSeconds / 60);
|
|
const seconds = totalSeconds % 60;
|
|
|
|
const paddedMinutes = String(minutes).padStart(2, '0');
|
|
const paddedSeconds = String(seconds).padStart(2, '0');
|
|
|
|
return `${isNegative ? '-' : ''}${paddedMinutes}:${paddedSeconds}`;
|
|
}
|
|
|
|
export function parseTime(timeString) { // MM:SS or -MM:SS
|
|
if (!timeString || typeof timeString !== 'string') return 0;
|
|
const isNegative = timeString.startsWith('-');
|
|
if (isNegative) {
|
|
timeString = timeString.substring(1);
|
|
}
|
|
const parts = timeString.split(':');
|
|
if (parts.length !== 2) return 0;
|
|
|
|
const minutes = parseInt(parts[0], 10);
|
|
const seconds = parseInt(parts[1], 10);
|
|
|
|
if (isNaN(minutes) || isNaN(seconds)) return 0;
|
|
|
|
let totalSeconds = (minutes * 60) + seconds;
|
|
return isNegative ? -totalSeconds : totalSeconds;
|
|
} |