Điều này có thể được thực hiện khá bền bỉ với những điều sau:
'01:02:03'.split(':').reduce((acc,time) => (60 * acc) + +time);
Điều này là do mỗi đơn vị thời gian trong giờ, phút và giây là bội số của 60 lớn hơn đơn vị nhỏ hơn. Thời gian được chia thành các thành phần giờ phút và giây, sau đó giảm xuống giây bằng cách sử dụng giá trị tích lũy của các đơn vị cao hơn nhân với 60 khi nó đi qua mỗi đơn vị.
Các +time
được sử dụng để đúc thời gian để một số.
Về cơ bản, nó kết thúc bằng việc: (60 * ((60 * HHHH) + MM)) + SS
Nếu chỉ giây được trôi qua thì kết quả sẽ là một chuỗi, vì vậy để khắc phục chúng ta có thể truyền toàn bộ kết quả thành một int:
+('03'.split(':').reduce((acc,time) => (60 * acc) + +time));