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 time = startTime / 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 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 = "故障";
}
alert('zhuangtai');
if (arr1 === 0 ) {
runtime1 = data - Stime;//时间差的毫秒数
} else {
faulttime1 = data - Stime;
}
alert(runtime1);
if (arr2 === 0) {
runtime2 = Etime - data;
} else {
faulttime2 = Etime - data;
}
if (datavalue === 0) {
runtime3 = data1 - data;
} else {
faulttime3 = data1 - data;
}
}
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;
Arr.push(newarr);
Table1.SetData(Arr);
});
NaN只有处理数字的时候会出现
var rhours=Math.floor(runtime/(36001000));//计算出小时数
var fhours=Math.floor(faulttime/(36001000));
也就是上面runtime或faulttime可能是字符串
if (arr1 === 0 ) {
runtime1 = data - Stime;//时间差的毫秒数
} else {
faulttime1 = data - Stime;
}
data、data1这个变量写错了吧应该是date、date1吧
NaN不是一个数字,就是你对一个不是数字的变量 做了加减乘除。 报错没显示第几行吗?
做运算的时候Number一下。