timer has formatted timetag

This commit is contained in:
cv
2021-06-10 22:46:26 +02:00
parent 21f1144fce
commit 441a67e09b
2 changed files with 26 additions and 1 deletions
+8 -1
View File
@@ -4,10 +4,13 @@
*
*/
import { stringFromMillis } from '../utils/time.js';
export class Timer {
clock = null;
duration = null;
current = null;
timeTag = null;
secondaryTimer = null;
_finishAt = null;
_finishedAt = null;
@@ -133,8 +136,12 @@ export class Timer {
// getObject
getObject() {
// update timer
this.update();
// update timetag
this.timeTag = stringFromMillis(this.current);
return {
clock: this.clock,
running: Timer.toSeconds(this.current),
@@ -216,4 +223,4 @@ export class Timer {
this._finishedAt = null;
}
}
}
}
+18
View File
@@ -0,0 +1,18 @@
export const stringFromMillis = (
ms,
showSeconds = true,
delim = ':',
ifNull = '...'
) => {
if (ms === null || isNaN(ms)) return ifNull;
const showWith0 = (value) => (value < 10 ? `0${value}` : value);
const hours = showWith0(Math.floor(((ms / (1000 * 60 * 60)) % 60) % 24));
const minutes = showWith0(Math.floor((ms / (1000 * 60)) % 60));
const seconds = showWith0(Math.floor((ms / 1000) % 60));
return showSeconds
? `${
parseInt(hours) ? `${hours}${delim}` : `00${delim}`
}${minutes}${delim}${seconds}`
: `${parseInt(hours) ? `${hours}` : '00'}${delim}${minutes}`;
};