Unopinionated time to seconds converter that lets you decide the format of your h:m:s
; as long as you keep the number of colons between 0
and 2
it does not matter if you use "hh:mm:ss"
, "h:m:s"
or "hhh:mmmm:ssss"
format - you will always get the number of seconds back as an integer.
Pass time as a string, e.g.:
"h:m:s"
"m:s"
":s"
"s"
- or any variation of
"h:m:s"
, e.g.":m:s"
; as long as you keep the number of colons between 0 and 2, whereh
,m
ors
are any numbers, you will get seconds - as a number - in return.
var timeToSeconds = require("time-to-seconds");
timeToSeconds("2:2:2");
// => 7322
timeToSeconds("02:02:02");
// => 7322
timeToSeconds("2:02:02");
// => 7322
timeToSeconds("2:2:02");
// => 7322
timeToSeconds("2:");
// => 120
timeToSeconds("2:0");
// => 120
timeToSeconds("02:0");
// => 120
timeToSeconds("02:00");
// => 120
timeToSeconds(":2");
// => 2
timeToSeconds("2");
// => 2
timeToSeconds("0:2");
// => 2
timeToSeconds("0:02");
// => 2
timeToSeconds("00:02");
// => 2
timeToSeconds("");
// => 0
timeToSeconds("0");
// => 0
The non-strict format will allow for the input of an empty string which will be treated the same as passing the number 0
; the below inputs are equivalent and will return 0
seconds:
timeToSeconds("")
timeToSeconds("0")
timeToSeconds(":0")
timeToSeconds("::0")
timeToSeconds(":")
timeToSeconds("::")
timeToSeconds("Anything else than time string");
// TypeError: 'time-to-seconds: wrong argument type - something else than a number string in format "number", "number:number" or "number:number:number" was passed. See documentation for more information on argument formatting: https://www.npmjs.com/package/time-to-seconds.'
timeToSeconds("2:2:2:2");
// TypeError: 'time-to-seconds: too many colons - make sure the function argument is a number string in format "number", "number:number" or "number:number:number". See documentation for more information on argument formatting: https://www.npmjs.com/package/time-to-seconds.'
If you pass decimals to the function, e.g.:
timeToSeconds("0.2:00")
ortimeToSeconds("0.2:")
(in the above examples the inputs are the same) it will be interpreted as 0.2 of one minute, so 12 seconds (60 * 0.2 = 12 seconds
).
Similarly, if you pass, e.g.:
timeToSeconds("0.2:00:00")
ortimeToSeconds("0.2::")
(again, the inputs are the same) it will be interpreted as 0.2 of one hour, so 720 seconds (3600 * 0.2 = 720 seconds
).
Together:
timeToSeconds("0.2:0.2:00")
ortimeToSeconds("0.2:0.2:")
will return 732 seconds (0.2
of one hour is 720 seconds
, 0.2
of one minute is 12 seconds
; 720 + 12 = 732 seconds
)
Note: passing decimals as seconds, e.g.: timeToSeconds("0:0:0.2")
, will simply return 0.2 seconds
.
You could calculate the value to convert and because of the non-strict format, pass the calcualted value to the function, e.g.:
var num = Math.log10(100);
timeToSeconds(`${num.toString()}:`);
// => 120
timeToSeconds(`${Math.log10(100).toString()}:`);
// => 120
MIT