In my case, I use it to calculate the time on the account .
The input may contain these 6 ways to write it to the user:
- 1 → 1 hour 0 minutes
- 1.2 → 1 hour 12 minutes
- 1.5 → 1 hour 30 minutes
- 1:30 → 1 hour 30 minutes
- 1h40 → 1 hour 40 minutes
- 45 m → 0 hour 45 minutes
So, I used this (thanks to Amadan), here is the working code:
function time2dec(tIn) { if(tIn == '') return 0; if(tIn.indexOf('h') >= 0 || tIn.indexOf(':') >= 0) return hm2dec(tIn.split(/[h:]/)); if(tIn.indexOf('m') >= 0) return hm2dec([0,tIn.replace('m','')]); if(tIn.indexOf(',') >= 0) return parseFloat(tIn.split(',').join('.')).toFixed(2); if(tIn.indexOf('.') >= 0) return parseFloat(tIn); return parseInt(tIn, 10); } function hm2dec(hoursMinutes) { var hours = parseInt(hoursMinutes[0], 10); var minutes = hoursMinutes[1] ? parseInt(hoursMinutes[1], 10) : 0; return (hours + minutes / 60).toFixed(2); }
Usage example (with jQuery):
var qty = time2dec($('#qty').val()); var price = parseFloat($('#price').val()); var total = (qty * price).toFixed(2);
Hope this helps some of us.
source share