comic-plus
Version:
<p align="center"> <img width="200px" src="./logo.png"/> </p>
34 lines (33 loc) • 956 B
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const timeUnits = [
["Y", 1e3 * 60 * 60 * 24 * 365],
// years
["M", 1e3 * 60 * 60 * 24 * 30],
// months
["D", 1e3 * 60 * 60 * 24],
// days
["H", 1e3 * 60 * 60],
// hours
["m", 1e3 * 60],
// minutes
["s", 1e3],
// seconds
["S", 1]
// million seconds
];
function formatTime(timestamp, format) {
let timeLeft = timestamp;
const escapeRegex = /\[([^\]]*)]/g;
const replacedText = timeUnits.reduce((current, [name, unit]) => {
const replaceRegex = new RegExp(`${name}+(?![^\\[\\]]*\\])`, "g");
if (replaceRegex.test(current)) {
const value = Math.floor(timeLeft / unit);
timeLeft -= value * unit;
return current.replace(replaceRegex, (match) => String(value).padStart(match.length, "0"));
}
return current;
}, format);
return replacedText.replace(escapeRegex, "$1");
}
exports.formatTime = formatTime;