Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 整小时hh:ii:ss到十进制_Javascript - Fatal编程技术网

Javascript 整小时hh:ii:ss到十进制

Javascript 整小时hh:ii:ss到十进制,javascript,Javascript,如何将全日制转换为十进制?在下面的代码中,秒数未被转换 function timeToDecimal(t) { var arr = t.split(':'); var dec = parseInt((arr[1]/6)*10, 10); return parseFloat(parseInt(arr[0], 10) + '.' + ( dec < 10 ? '0' : '' ) + dec); } console.log( timeToDecimal('00

如何将全日制转换为十进制?在下面的代码中,秒数未被转换

function timeToDecimal(t) {
    var arr = t.split(':');
    var dec = parseInt((arr[1]/6)*10, 10);

    return parseFloat(parseInt(arr[0], 10) + '.' + ( dec < 10 ? '0' : '' ) + dec);
}   

console.log( timeToDecimal('00:01:44') ); // 0.01
console.log( timeToDecimal('00:03:36') ); // 0.05
console.log( timeToDecimal('00:30:47') ); // 0.5
console.log( timeToDecimal('10:10:20') ); // 10.16
console.log( timeToDecimal('01:30:58') ); // 1.5
console.log( timeToDecimal('3:22:10' ) ); // 3.36
console.log( timeToDecimal('22:45:48') ); // 22.75
console.log( timeToDecimal('02:00:05') ); // 2
函数时间指定(t){
var arr=t.split(“:”);
var-dec=parseInt((arr[1]/6)*10,10);
返回parseFloat(parseInt(arr[0],10)+'.'.+(dec<10?'0':'')+dec);
}   
console.log(timeToDecimal('00:01:44'));//0.01
console.log(timeToDecimal('00:03:36'));//0.05
console.log(timeToDecimal('00:30:47'));//0.5
console.log(timeToDecimal('10:10:20'));//10.16
console.log(timeToDecimal('01:30:58'));//1.5
console.log(timeToDecimal('3:22:10'));//3.36
console.log(timeToDecimal('22:45:48'));//22.75
console.log(timeToDecimal('02:00:05'));//2.

您的代码从不引用
arr[2]
,因此显然它不会对秒做任何事情

至少可以说,构造一个看起来像十进制数的字符串,然后用
parseFloat
解析它的方法很奇怪。你所需要的只是

function timeToDecimal(t) {
  const [hh, mm, ss] = t.split(':');

  return +hh + mm / 60 + ss / 3600;
}
但是你真的应该用图书馆来做这个。有了这一刻,一切都会好起来

moment.duration('1:30:22').asHours()

您的代码从来没有引用过
arr[2]
,所以很明显,它不会用秒做任何事情

至少可以说,构造一个看起来像十进制数的字符串,然后用
parseFloat
解析它的方法很奇怪。你所需要的只是

function timeToDecimal(t) {
  const [hh, mm, ss] = t.split(':');

  return +hh + mm / 60 + ss / 3600;
}
但是你真的应该用图书馆来做这个。有了这一刻,一切都会好起来

moment.duration('1:30:22').asHours()

先做数学运算,然后将结果处理为字符串

函数时间指定(t){
var arr=t.split(“:”).map(编号);
返回(arr[0]+arr[1]/60+arr[2]/3600)。固定(2);
}   
console.log(timeToDecimal('00:01:44');
console.log(timeToDecimal('00:03:36');
日志(timeToDecimal('00:30:47');
log(timeToDecimal('10:10:20');
console.log(timeToDecimal('01:30:58');
log(timeToDecimal('3:22:10'));
log(timeToDecimal('22:45:48'));

console.log(timeToDecimal('02:00:05')首先进行数学运算,然后将结果处理为字符串

函数时间指定(t){
var arr=t.split(“:”).map(编号);
返回(arr[0]+arr[1]/60+arr[2]/3600)。固定(2);
}   
console.log(timeToDecimal('00:01:44');
console.log(timeToDecimal('00:03:36');
日志(timeToDecimal('00:30:47');
log(timeToDecimal('10:10:20');
console.log(timeToDecimal('01:30:58');
log(timeToDecimal('3:22:10'));
log(timeToDecimal('22:45:48'));

console.log(timeToDecimal('02:00:05')
JSFiddle JSFiddle使用
Array#reduce简化我的答案
使用
Array#reduce简化我的答案