Cela peut être fait de manière assez résiliente avec les éléments suivants:
'01:02:03'.split(':').reduce((acc,time) => (60 * acc) + +time);
En effet, chaque unité de temps dans les heures, les minutes et les secondes est un multiple de 60 supérieur à l'unité plus petite. Le temps est divisé en composantes heure minutes et secondes, puis réduit en secondes en utilisant la valeur cumulée des unités supérieures multipliée par 60 au fur et à mesure qu'elle traverse chaque unité.
Le +time
est utilisé pour convertir le temps en un nombre.
Cela finit par faire: (60 * ((60 * HHHH) + MM)) + SS
Si seulement quelques secondes sont passées, le résultat serait une chaîne, donc pour corriger le problème, nous pourrions convertir le résultat entier en un entier:
+('03'.split(':').reduce((acc,time) => (60 * acc) + +time));