Javascript 使用来自ajax的新数据更新flot图表

Javascript 使用来自ajax的新数据更新flot图表,javascript,sorting,datetime,object,flot,Javascript,Sorting,Datetime,Object,Flot,我从php获得了以下输出,这是我使用ajax获得的 AVAILABILITY: "99.26" BEARER: "3G" SUM(UNAVAILABILITY_D): "11458800" SUM(UNAVAILABILITY_N): "84353" TIMESTAMP: "2015-12-08 14:00" VENDOR: "Hua" VF_REGION: "South" 数组包含4325。我试图将不可用性和不可用性相加,并按时间戳对它们进行分组时间戳始终为每小时一次 我的第一个函数是循环数

我从php获得了以下输出,这是我使用ajax获得的

AVAILABILITY: "99.26"
BEARER: "3G"
SUM(UNAVAILABILITY_D): "11458800"
SUM(UNAVAILABILITY_N): "84353"
TIMESTAMP: "2015-12-08 14:00"
VENDOR: "Hua"
VF_REGION: "South"
数组包含4325。我试图将
不可用性
不可用性
相加,并按
时间戳
对它们进行分组<代码>时间戳始终为每小时一次

我的第一个函数是循环数组并将日期转换为秒,在每个时间戳数组中,我汇总
不可用性\u D
不可用性\u N

function loopInitial(data){
    console.log(data);
    var n = 0;
    var d = 0;
    for(i=0;i<data.length;i++){
        //sevenDays_object[data[i].TIMESTAMP] = ( typeof sevenDays_object[data[i].TIMESTAMP] != 'undefined' && sevenDays_object[data[i].TIMESTAMP] instanceof Array ) ? sevenDays_object[data[i].TIMESTAMP] : []
        //sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_N'] = ( typeof sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_N'] != 'undefined' && sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_N'] instanceof Array ) ? sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_N'] : []
        //sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_D'] = ( typeof sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_D'] != 'undefined' && sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_D'] instanceof Array ) ? sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_D'] : []
        //sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_N'] += data[i]['SUM(UNAVAILABILITY_N)'];
        //sevenDays_object[data[i].TIMESTAMP]['UNAVAILABILITY_D'] += data[i]['SUM(UNAVAILABILITY_D)'];

        var to_seconds = new Date(data[i].TIMESTAMP).getTime() / 1000; // convert date to seconds as string is not sortable in object.
        if( typeof sevenDays_object[to_seconds] == 'undefined' && !(sevenDays_object[to_seconds] instanceof Array) ) { sevenDays_object[to_seconds] = []; }     
        if( typeof sevenDays_object[to_seconds]['UNAVAILABILITY_N'] == 'undefined' && !(sevenDays_object[to_seconds]['UNAVAILABILITY_N'] instanceof Array) ) { sevenDays_object[to_seconds]['UNAVAILABILITY_N'] = [] ;}
        if( typeof sevenDays_object[to_seconds]['UNAVAILABILITY_D'] == 'undefined' && !(sevenDays_object[to_seconds]['UNAVAILABILITY_D'] instanceof Array) ) {sevenDays_object[to_seconds]['UNAVAILABILITY_D'] = []; }
        sevenDays_object[to_seconds]['UNAVAILABILITY_N'] = +sevenDays_object[to_seconds]['UNAVAILABILITY_N'] + +data[i]['SUM(UNAVAILABILITY_N)'];
        sevenDays_object[to_seconds]['UNAVAILABILITY_D'] = +sevenDays_object[to_seconds]['UNAVAILABILITY_N'] + +data[i]['SUM(UNAVAILABILITY_D)'];
    }
    //console.log(sevenDays_object);
    //console.log(sevenDays_object);
    return sevenDays_object;
}
在我将日期计算中的
/1000
删除到秒后,日期开始工作,但是现在我可以注意到顺序不正确

[1449583200000,92.96],
[1449597600000,68.78],
[1449576000000,29.54],
[1449669600000,72.58],
[1449604800000,2.47],
[1449572400000,0.68],
[1449687600000,40.69],
[1449655200000,0.22],
[1449619200000,72.43],
[1449586800000,66.82],
[1449601200000,51.75],
[1449622800000,0.8],
[1449608400000,91.25],
[1449633600000,79.43],
[1449698400000,90.85],
[1449579600000,92.78],
[1449612000000,1.5],
[1449590400000,91.9],
[1449594000000,65.98],
[1449615600000,39.19],
[1449662400000,57.82],
[1449716400000,36],
[1449723600000,0.63],
[1449694800000,2.49],
[1449658800000,70.17],
[1449702000000,0.92],
[1449673200000,0.25],
[1449648000000,0.6],
[1449630000000,68.37],
[1449637200000,67.18],
[1449640800000,2.43],
[1449712800000,70.08],
[1449810000000,0.31],
[1449644400000,2.4],
[1449813600000,0.31],
[1449806400000,0.62],
[1449748800000,0.1],
[1449756000000,71.94],
[1449738000000,0.62],
[1449781200000,65.47],
[1449795600000,0.61],
[1449763200000,74.87],
[1449799200000,90.14],
[1449709200000,1],
[1449727200000,0.83],
[1449626400000,46.81],
[1449741600000,0.43],
[1449766800000,32.19],
[1449730800000,0.65],
[1449676800000,94.16],
[1449680400000,62.4],
[1449774000000,67.64],
[1449684000000,2.51],
[1449745200000,0.2],
[1449734400000,74.95],
[1449867600000,0.46],
[1449838800000,0.21],
[1449720000000,37.89],
[1449824400000,0.44],
[1449666000000,62.86],
[1449820800000,1.82],
[1449846000000,73.77],
[1449752400000,61.95],
[1449885600000,70.85],
[1449705600000,41.44],
[1449849600000,74.69],
[1449860400000,80.92],
[1449946800000,81.99],
[1449828000000,82.85],
[1449943200000,82.76],
[1449900000000,68.8],
[1449802800000,96.4],
[1449889200000,0.72],
[1449896400000,2.4],
[1449882000000,73.82],
[1449864000000,94.81],
[1449831600000,39.28],
[1449835200000,87.17],
[1449759600000,73.07],
[1449990000000,92.25],
[1450004400000,81.72],
[1450008000000,38],
[1449878400000,91.72],
[1450011600000,81.18],
[1449792000000,91.54],
[1449925200000,75.03],
[1449993600000,0.38],
[1449997200000,69.46],
[1449972000000,0.42],
[1449871200000,24.99],
[1449856800000,68.37],
[1449975600000,2.72],
[1449853200000,63.96],
[1449928800000,35],
[1449777600000,88.73],
[1449986400000,0.83],
[1449918000000,1.83],
[1449910800000,33.88],
[1449914400000,78.3],
[1449842400000,59.39],
[1449982800000,46.92],
[1449979200000,80.1],
[1449921600000,0.53],
[1449950400000,80.27],
[1449964800000,75.23],
[1450022400000,93.11],
[1450033200000,84.57],
[1449784800000,76.68],
[1449788400000,35.89],
[1449770400000,78.38],
[1449892800000,90.59],
[1449903600000,0.37],
[1449907200000,41.86],
[1449961200000,71.93],
[1450026000000,82.31],
[1449874800000,0.26],
[1449932400000,0.69],
[1450036800000,92.72],
[1450040400000,71.68],
[1450047600000,94.17],
[1449968400000,82.99],
[1450051200000,0.42],
[1450018800000,91.65],
[1450029600000,0.43],
[1450058400000,0.82],
[1449957600000,94.3],
[1449936000000,81.65],
[1450000800000,0.32],
[1450044000000,2.87],
[1450015200000,38.18],
[1449939600000,74.92],
[1450069200000,76.55],
[1450062000000,84.66],
[1450065600000,0.41],
[1450076400000,84.95],
[1449954000000,0.77],
[1450054800000,82.32],
[1449651600000,0.24],
[1449691200000,91.54],
[1449817200000,0.31],
[1450072800000,74.01],
更新

我已经修复了php端的排序。我已经解决了flot绘图问题,在x轴上显示了正确的日期和月份

var to_seconds = moment(data[i].TIMESTAMP, 'YYYY-MM-DD hh:mm A').unix() * 1000;

我现在的问题是,如果我将
转换为_seconds
返回到最新的时间格式,则月份和日期是正确的,而不是年份。

我不完全确定你在问什么。1449208800000和1449817200都转换为正确的日期。您希望他们转换到哪一天?代码中有一个奇怪的地方,就是使用了
新日期(property+“:00”)
。这不应该是新的日期吗(数据[属性]+“:00”)?请参阅更新的问题更新:我将更改行
var s=d.getTime()/1000
到刚好
var s=property/1000
之前,然后在
setData
之前,首先按属性值对数组进行排序。再想一想,我认为您的第一个问题是,您有一个来自php的日期字符串,格式为YYYY/MM/DD HH:MM,您希望将其传递给Javascript。那不行。阅读您会发现使用Javascript短日期格式(YYYY/MM/DD)和ISO格式(YYYY-MM-DDTHH:MM:SS)之间存在混合。最好在php中转换输入,以给您(毫秒)的开始时间。或者,如果您没有访问输入的权限,请尝试将日期字符串转换为ISO格式,方法是替换为-。@user2288476这是一个oracle查询,我已按照您的建议将select更改为
为_CHAR(TIMESTAMP,'yyyyy-mm-dd HH24:mi')时间戳。
属性是datetime的字符串值,是否不需要先将其转换为秒?
[1449583200000,92.96],
[1449597600000,68.78],
[1449576000000,29.54],
[1449669600000,72.58],
[1449604800000,2.47],
[1449572400000,0.68],
[1449687600000,40.69],
[1449655200000,0.22],
[1449619200000,72.43],
[1449586800000,66.82],
[1449601200000,51.75],
[1449622800000,0.8],
[1449608400000,91.25],
[1449633600000,79.43],
[1449698400000,90.85],
[1449579600000,92.78],
[1449612000000,1.5],
[1449590400000,91.9],
[1449594000000,65.98],
[1449615600000,39.19],
[1449662400000,57.82],
[1449716400000,36],
[1449723600000,0.63],
[1449694800000,2.49],
[1449658800000,70.17],
[1449702000000,0.92],
[1449673200000,0.25],
[1449648000000,0.6],
[1449630000000,68.37],
[1449637200000,67.18],
[1449640800000,2.43],
[1449712800000,70.08],
[1449810000000,0.31],
[1449644400000,2.4],
[1449813600000,0.31],
[1449806400000,0.62],
[1449748800000,0.1],
[1449756000000,71.94],
[1449738000000,0.62],
[1449781200000,65.47],
[1449795600000,0.61],
[1449763200000,74.87],
[1449799200000,90.14],
[1449709200000,1],
[1449727200000,0.83],
[1449626400000,46.81],
[1449741600000,0.43],
[1449766800000,32.19],
[1449730800000,0.65],
[1449676800000,94.16],
[1449680400000,62.4],
[1449774000000,67.64],
[1449684000000,2.51],
[1449745200000,0.2],
[1449734400000,74.95],
[1449867600000,0.46],
[1449838800000,0.21],
[1449720000000,37.89],
[1449824400000,0.44],
[1449666000000,62.86],
[1449820800000,1.82],
[1449846000000,73.77],
[1449752400000,61.95],
[1449885600000,70.85],
[1449705600000,41.44],
[1449849600000,74.69],
[1449860400000,80.92],
[1449946800000,81.99],
[1449828000000,82.85],
[1449943200000,82.76],
[1449900000000,68.8],
[1449802800000,96.4],
[1449889200000,0.72],
[1449896400000,2.4],
[1449882000000,73.82],
[1449864000000,94.81],
[1449831600000,39.28],
[1449835200000,87.17],
[1449759600000,73.07],
[1449990000000,92.25],
[1450004400000,81.72],
[1450008000000,38],
[1449878400000,91.72],
[1450011600000,81.18],
[1449792000000,91.54],
[1449925200000,75.03],
[1449993600000,0.38],
[1449997200000,69.46],
[1449972000000,0.42],
[1449871200000,24.99],
[1449856800000,68.37],
[1449975600000,2.72],
[1449853200000,63.96],
[1449928800000,35],
[1449777600000,88.73],
[1449986400000,0.83],
[1449918000000,1.83],
[1449910800000,33.88],
[1449914400000,78.3],
[1449842400000,59.39],
[1449982800000,46.92],
[1449979200000,80.1],
[1449921600000,0.53],
[1449950400000,80.27],
[1449964800000,75.23],
[1450022400000,93.11],
[1450033200000,84.57],
[1449784800000,76.68],
[1449788400000,35.89],
[1449770400000,78.38],
[1449892800000,90.59],
[1449903600000,0.37],
[1449907200000,41.86],
[1449961200000,71.93],
[1450026000000,82.31],
[1449874800000,0.26],
[1449932400000,0.69],
[1450036800000,92.72],
[1450040400000,71.68],
[1450047600000,94.17],
[1449968400000,82.99],
[1450051200000,0.42],
[1450018800000,91.65],
[1450029600000,0.43],
[1450058400000,0.82],
[1449957600000,94.3],
[1449936000000,81.65],
[1450000800000,0.32],
[1450044000000,2.87],
[1450015200000,38.18],
[1449939600000,74.92],
[1450069200000,76.55],
[1450062000000,84.66],
[1450065600000,0.41],
[1450076400000,84.95],
[1449954000000,0.77],
[1450054800000,82.32],
[1449651600000,0.24],
[1449691200000,91.54],
[1449817200000,0.31],
[1450072800000,74.01],
var to_seconds = moment(data[i].TIMESTAMP, 'YYYY-MM-DD hh:mm A').unix() * 1000;