时长分别得出结果,可是一相加就报错

img



var dataSourceName = 'KHTest';
//数据源名称
var tagNames = ['D01','D02','D03','D04'];
//变量名称
var startTime = DateTimeBox2.Value;
//查询的开始时间
var endTime = DateTimeBox3.Value;
//查询的结束时间
var dataVersion = 0;
//数据版本:原始版本
var Arr = [];
//质量戳
var filter = '';
var dataQuality = true;
GetHistoryDatasKH(dataSourceName,tagNames,startTime,endTime,dataVersion,filter,dataQuality,function(res){
    console.log(res);
    var Stime = new Date (Date.parse(startTime)).getTime();
    var Etime = new Date (Date.parse(endTime)).getTime();
    var arr = res.data[0].records[4]; 
    var starttime;
    var endtime;
    var runtime = 0 ;
    var faulttime = 0 ;
    var runtime1;
    var runtime2;
    var runtime3;
    var faulttime1;
    var faulttime2;
    var faulttime3;
    var newarr = {};
    var value;
    for (var i = 0,j = 1; i < arr.length,j < arr.length-1; i++,j++) {
        var datatime = res.data[0].records[4][i][2];//取出字符串数据时间
        var date = new Date (Date.parse(datatime.replace(/-/g, "/"))).getTime();// 将-转换为/
        var datatime1 = res.data[0].records[4][j][2];
        var date1 = new Date (Date.parse(datatime1.replace(/-/g, "/"))).getTime();
        var datavalue = res.data[0].records[4][i][0];
        var datavalue1 = res.data[0].records[4][j][0];
        var arr1 = res.data[0].records[4][0][0];
        var arr2 = res.data[0].records[4][arr.length-1][0];
        if (datavalue === 1){
            value = "运行";
        }
        else{
            value = "故障";
        }
       console.log(value);
       if (arr1 === 0 ) {
         runtime1 = date - Stime;//时间差的毫秒数
           console.log(runtime1);
     } else {
         faulttime1 = date - Stime;
         console.log(faulttime1);
       }
       if (arr2 === 0) {
           runtime2 = Etime - date;
            console.log(runtime2);
      } else {
            faulttime2 = Etime - date;
             console.log(faulttime2);
        }
        if (datavalue1 === 0) {
            runtime3 = date1 -  date;
             console.log(runtime3);
        } else {
            faulttime3 = date1 -  date;
             console.log(faulttime3);
        }
    }
        runtime = runtime1 + runtime2 + runtime3;
        console.log(runtime);
        faulttime = faulttime1 + faulttime2 + faulttime3;
       // console.log(faulttime);
    var rhours=Math.floor(runtime/(3600*1000));//计算出小时数
    var fhours=Math.floor(faulttime/(3600*1000));  
        newarr.starttime=startTime;
        newarr.endtime=endTime;
        newarr.value=value;
        newarr.runtime=rhours;
        newarr.faulttime=fhours;
        Arr.push(newarr);
    Table1.SetData(Arr);
});

哪行出错了呀?另外你要做什么?感觉写复杂了

//首先这两行。。
    var Stime = new Date (Date.parse(startTime)).getTime();

    var Etime = new Date (Date.parse(endTime)).getTime();
//和下面是一样的,parse 返回的就是毫秒数
    var Stime = Date.parse(startTime);

    var Etime = Date.parse(endTime);

相加之前你在console 里边把这几个打(console.log(runtime1,runtime2,runtime3))出来看看都是不是数字。你给报错的是提示这几个变量中有一个不是数字的。