यह निम्नलिखित के साथ काफी लचीला किया जा सकता है:
'01:02:03'.split(':').reduce((acc,time) => (60 * acc) + +time);
ऐसा इसलिए है क्योंकि घंटे, मिनट और सेकंड के भीतर समय की प्रत्येक इकाई छोटी इकाई की तुलना में 60 से अधिक की एक बहु है। समय को घंटे मिनट और सेकंड घटकों में विभाजित किया जाता है, फिर उच्च इकाइयों के संचित मूल्य का उपयोग करके सेकंड में घटाकर 60 से गुणा किया जाता है क्योंकि यह प्रत्येक इकाई के माध्यम से जाता है।
+time
एक नंबर के लिए समय कास्ट करने के लिए प्रयोग किया जाता है।
यह मूल रूप से समाप्त होता है: (60 * ((60 * HHHH) + MM)) + SS
यदि केवल कुछ सेकंड बीत जाते हैं, तो परिणाम एक स्ट्रिंग होगा, इसलिए यह तय करने के लिए कि हम पूरे परिणाम को एक इंट में डाल सकते हैं:
+('03'.split(':').reduce((acc,time) => (60 * acc) + +time));