Ini dapat dilakukan dengan cukup tangguh dengan yang berikut:
'01:02:03'.split(':').reduce((acc,time) => (60 * acc) + +time);
Ini karena setiap satuan waktu dalam jam, menit, dan detik adalah kelipatan 60 lebih besar daripada satuan yang lebih kecil. Waktu dibagi menjadi komponen jam menit dan detik, kemudian dikurangi menjadi detik dengan menggunakan nilai akumulasi dari unit yang lebih tinggi dikalikan dengan 60 saat melewati setiap unit.
Yang +time
digunakan untuk melemparkan waktu untuk nomor.
Itu pada dasarnya akhirnya melakukan: (60 * ((60 * HHHH) + MM)) + SS
Jika hanya beberapa detik yang berlalu maka hasilnya akan menjadi string, jadi untuk memperbaikinya kita bisa mentransmisikan seluruh hasil ke int:
+('03'.split(':').reduce((acc,time) => (60 * acc) + +time));