前台时间显示NaN,代码如下,大家看看问题出在哪里

img

img

//debugger

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 ('startTime');
    var Etime = new Date ('endTime');
    var arr = res.data[0].records[4]; 
    var time = startTime / endTime;
    var runtime = 0;
    var faulttime = 0;
    var runtime1;
    var runtime2;
    var runtime3;
    var faulttime1;
    var faulttime2;
    var faulttime3;
    var newarr = {};
    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 d1 = datatime.replace(/-/g, "/");// 将-转换为/
        var date1 = new Date (d1);
        var datatime1 = res.data[0].records[4][j][2];
        var d2 = datatime.replace(/-/g, "/");
        var date2 = new Date (d1);
        var value = res.data[0].records[4][i][0];
        if (value[i] === 1){
            value = "运行";
        }
        else{
            value = "故障";
        }

        if (value[0] === false) {
            runtime1 = data1.getTime() - Stime.getTime();//时间差的毫秒数
        } else {
            faulttime1 = data1.getTime() - Stime.getTime();
        }
         
        if (value[arr.length - 1] === false) {
            runtime2 = Etime.getTime() - data1.getTime();
        } else {
            faulttime2 = Etime.getTime() - data1.getTime();
        }
        
        if (value[i] === false) {
            runtime3 = data2.getTime() -  data1.getTime();
        } else {
            faulttime3 = data2.getTime() -  data1.getTime();
        }
    }
        runtime = runtime1 + runtime2 + runtime3;
        faulttime = faulttime1 + faulttime2 + faulttime3;
    var rhours=Math.floor(runtime/(3600*1000));//计算出小时数
    var fhours=Math.floor(faulttime/(3600*1000));  
        newarr.time=time;
        newarr.value=value;
        newarr.runtime=rhours;
        newarr.faulttime=fhours;
        alert('1');
        Arr.push(newarr);
      //  alert('newarr');
    Table1.SetData(Arr);
});

NaN不是一个数字,具体报什么错
JavaScript NaN 属性 https://www.w3school.com.cn/jsref/jsref_nan.asp

NaN表示非数字
你需要定义一些字符串类型的变量来存放你的数据,而不是先定义成number,再给他们重新赋值字符串
js虽然是弱类型的,但是它起码还有类型,不像python里面可以随便把一个变量赋值成任何类型的数据