function timeToDecimal(time) { var arr = time.split(':'); var hour = parseFloat(arr[0]); var minute = parseFloat(arr[1]); var second = parseFloat(arr[2]); return hour + minute / 60 + second / 3600; } // 将十进制转化成时分秒格式 function decimalToTime(decimal) { var hour = Math.floor(decimal); var minute = Math.floor((decimal - hour) * 60); var second = Math.floor(((decimal - hour) * 60 - minute) * 60); return hour + ':' + minute + ':' + second; }如果分有02,转换回来成立2
时间: 2024-03-05 15:52:22 浏览: 79
这是因为在使用parseFloat函数时,会自动忽略掉数值前导的0,所以02会被解析为2。可以使用parseInt函数来解决这个问题,例如:
```javascript
function timeToDecimal(time) {
var arr = time.split(':');
var hour = parseInt(arr[0]);
var minute = parseInt(arr[1]);
var second = parseInt(arr[2]);
return hour + minute / 60 + second / 3600;
}
function decimalToTime(decimal) {
var hour = Math.floor(decimal);
var minute = Math.floor((decimal - hour) * 60);
var second = Math.floor(((decimal - hour) * 60 - minute) * 60);
return hour + ':' + (minute < 10 ? '0' : '') + minute + ':' + (second < 10 ? '0' : '') + second;
}
var time = '12:02:45';
var decimal = timeToDecimal(time);
console.log(decimal); // 输出12.045833333333333
var time2 = decimalToTime(decimal);
console.log(time2); // 输出12:02:45
```
在转换成时分秒格式时,可以使用三目运算符来判断是否需要在分钟和秒前添加前导0。这样就可以得到正确的结果了。
阅读全文