/**
* @Datei format-time.js
* @modul format-time
* /
/**
* Formatiert die Sekunden als Zeitstring, H:MM:SS oder M:SS. Bereitstellung eines Leitfadens (in
* sekunden) erzwingt eine Anzahl von führenden Nullen, um die Länge der
* leitfaden.
*
* @privat
* @param {Anzahl} Sekunden
* Anzahl der Sekunden, die in eine Zeichenkette umgewandelt werden sollen
*
* @param {Nummer} guide
* Anzahl (in Sekunden), nach der die Zeichenfolge modelliert werden soll
*
* @return {string}
* Uhrzeit formatiert als H:MM:SS oder M:SS
* /
const defaultImplementation = function(seconds, guide) {
sekunden = Sekunden < 0 ? 0 : Sekunden;
let s = Math.floor(Sekunden % 60);
let m = Math.floor(Sekunden / 60 % 60);
let h = Math.floor(Sekunden / 3600);
const gm = Math.floor(guide / 60 % 60);
const gh = Math.floor(guide / 3600);
// Behandlung ungültiger Zeiten
if (isNaN(Sekunden) || Sekunden === Unendlich) {
// '-' ist falsch für alle relationalen Operatoren (z. B. <, >=), so dass diese Einstellung
// fügt die im Leitfaden angegebene Mindestanzahl von Feldern hinzu
h = m = s = '-';
}
// Prüfen Sie, ob wir Stunden anzeigen müssen
h = (h > 0 || gh > 0) ? h + ':' : '';
// Wenn Stunden angezeigt werden, müssen wir eventuell eine führende Null hinzufügen.
// Zeigt immer mindestens eine Stelle der Minuten an.
m = (((h || gm >= 10) && m < 10) ? 0' + m : m) + ':';
// Prüfen, ob eine führende Null für Sekunden benötigt wird
s = (s < 10) ? '0' + s : s;
h + m + s zurückgeben;
};
// Interner Zeiger auf die aktuelle Implementierung.
let implementation = defaultImplementation;
/**
* Ersetzt die Standardimplementierung von formatTime durch eine eigene Implementierung.
*
* @param {Funktion} customImplementation
* Eine Funktion, die anstelle der Standardfunktion formatTime verwendet wird
* umsetzung. Erhält die aktuelle Zeit in Sekunden und die
* leitfaden (in Sekunden) als Argumente.
* /
export function setFormatTime(customImplementation) {
implementierung = customImplementation;
}
/**
* Setzt formatTime auf die Standardimplementierung zurück.
* /
export function resetFormatTime() {
implementierung = defaultImplementation;
}
/**
* Delegiert entweder an die Standardfunktion zur Zeitformatierung oder an eine benutzerdefinierte
* funktion, die über "setFormatTime" bereitgestellt wird.
*
* Formatiert Sekunden als Zeitstring (H:MM:SS oder M:SS). Lieferung einer
* leitfaden (in Sekunden) wird eine Anzahl führender Nullen erzwingen, um die
* länge der Führung.
*
* @static
* @Beispiel formatTime(125, 600) === "02:05"
* @param {Anzahl} Sekunden
* Anzahl der Sekunden, die in eine Zeichenkette umgewandelt werden sollen
*
* @param {Nummer} guide
* Anzahl (in Sekunden), nach der die Zeichenfolge modelliert werden soll
*
* @return {string}
* Uhrzeit formatiert als H:MM:SS oder M:SS
* /
function formatTime(seconds, guide = seconds) {
return implementation(seconds, guide);
}
standardformat exportierenZeit;