Skip to content

Clock strings ​

Clock strings show a duration the way a stopwatch does: hh:mm:ss, optionally followed by a fraction of a second.

Reading ​

clockToMs turns a clock string into milliseconds. Hours and minutes are optional, and leading zeros are too:

ts
clockToMs
('10');
// => 10_000
clockToMs
('01:10');
// => 70_000
clockToMs
('01:01:01');
// => 3_661_000
clockToMs
('-00:30');
// => -30_000

Fractions of a second ​

After a ., the fraction holds milliseconds, microseconds and nanoseconds, in that order (.ms_μs_ns). Separate them with underscores, or pad each to three digits:

ts
clockToMs
('01:01:01.5');
// => 3_661_500
clockToMs
('01:01:01.500_000_005');
// => 3_661_500.000_005
clockToMs
('01:01:01.500000005');
// => 3_661_500.000_005

Writing ​

msToClock formats milliseconds as hh:mm:ss, adding the fraction only when there is one:

ts
msToClock
(7_501_000);
// => '02:05:01'
msToClock
(7_501_500);
// => '02:05:01.500'
msToClock
(-7_501_500);
// => '-02:05:01.500'

Microseconds and nanoseconds are separated with underscores. Set separateDecimal to false to leave them out:

ts
msToClock
(3_661_500.000_005);
// => '01:01:01.500_000_005'
msToClock
(3_661_500.000_005, {
separateDecimal
: false });
// => '01:01:01.500000005'

Days aren't included

The hours in msToClock's output only count up to 23: days and weeks are left out, so msToClock(days(2)) returns '00:00:00'. Use msToParts for longer durations.