就我而言,我用它来计算发票上的时间。
输入可以包含以下 6 种为用户编写它的方式:
- 1 -> 1 小时 0 分钟
- 1,2 -> 1 小时 12 分钟
- 1.5 -> 1 小时 30 分钟
- 1:30 -> 1 小时 30 分钟
- 1h40 -> 1 小时 40 分钟
- 45m -> 0 小时 45 分钟
所以我使用了这个(感谢 Amadan),这是工作代码:
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);
}
使用示例(使用 jQuery):
var qty = time2dec($('#qty').val());
var price = parseFloat($('#price').val());
var total = (qty * price).toFixed(2);
希望它可以帮助我们中的一些人。