highcharts中如何正确显示时间格式的x轴

来源:互联网 发布:苹果安装windows系统 编辑:程序博客网 时间:2024/05/01 21:37

我从后台取到数据,用highchart绘图后,发现y轴的值和提示框tooltip中显示的都是正确的,但x轴的时间没有正确显示,显示的是1970-01-01。

这个问题花了我将近一天的时间,才解决了。

查了很多博客,但是没有具体说到怎么解决,我看到最可靠的回答说是series中data的封装不正确。

series中data封装格式例子:

data:[

[Date.UTC(2010,1,1,10,20),120],

[Date.UTC(2010,1,1,10,20),120],

[Date.UTC(2010,1,1,10,20),120],

....

],

但是我从后台取到的数据是json格式的,在javascript中,data是ajax取到的数据,

一开始的代码是:

for(i=0;i<data.length;i++){

var tm=data[i].tm;

var ydata=data[i].ydata;

alldata.push([tm,ydata]);

}

highcharts中series部分代码:

series:{

data:alldata,

}

后来仔细看了series封装格式,发现要用Date.UTC这个函数,

就改了上面for循环中的代码,

for(i=0;i<data.length;i++){

var tm=data[i].tm;//tm应该是字符串类型

var ydata=data[i].ydata;

var someDate = new Date(Date.parse(tm));//把字符串类型专程Date类型

var tms=Date.UTC(someDate.getFullYear(), someDate.getMonth(), someDate.getDate(), someDate.getHours(),someDate.getMinutes());//进行Date.UTC处理
alldata.push([tms,ydata]);
}

经过上述改动后,x轴显示了正确的时间格式。

实例如下:

/*document.write('<meta http-equiv="content-Type" content="text/html;charset=utf-8"/>');*/var jq=jQuery.noConflict();jQuery(document).ready(function() {oneWaterLever();})function mthLever(){var rz=0;  //监测值 var min=0;   //最小值 var max=0;   //最大值 var alldata1=[];//highcharts中series的data值 var skcd="420116000125";var dateBegin=document.getElementById("dateBegin3").value;var dateEnd=document.getElementById("dateEnd3").value;var mthurl="getMthData?skcd="+skcd+"&dateBegin="+dateBegin+"&dateEnd="+dateEnd;jq.ajax({type:"get",url:mthurl,        global: false,  //Ajax的范围async:false,dataType:"json",success:function(data){//alert(JSON.stringify(data));if(data.name="rzdate"){for(i=0;i<data.rzdate.length;i++){rz=data.rzdate[i].rz;tm=data.rzdate[i].tm;var someDate = new Date(Date.parse(tm));var tms=Date.UTC(someDate.getFullYear(), someDate.getMonth(), someDate.getDate(), someDate.getHours(),someDate.getMinutes());alldata1.push([tms,rz]);}}if(data.name="min"){min=data.min;}if(data.name="max"){max=data.max;}var container="mthproc-container";  //曲线容器var formats='%Y-%m-%d'; var interval=3600*1000;drawHighcharts(container,name,formats,interval,alldata1,min,max);},error:function(err){          // alert(err.toString());$("#nodata").show();       }});function drawHighcharts(container,name,formats,interval,alldata1,min,max){ return  new Highcharts.Chart({ chart:{ renderTo:container,        type:'spline',        reflow:true,}, legend: {            align: 'center',            backgroundColor: '#FFFFFF',            borderColor: '#909090',            borderWidth: 1,            borderRadius:5,            shadow:true,        },        credits: {                     enabled: false // remove high chart logo hyper-link                 },  title:{text: name+'水位过程线'},tooltip: { useHTML: true,headerFormat: '<table><tr><td style="color:green">时间:{point.key}</td></tr>',pointFormat: '<tr><td><b>水位:{point.y}</b></td></tr>',            footerFormat: '</table>',xDateFormat:formats,borderRadius:10,crosshairs: {                width: 1,                              dashStyle: 'solid',            }        },        plotOptions:{        spline:{        marker:{        enabled:false,        },                lineWidth:2,//线条粗细          },          series: {                  marker: {                      enabled: false                  }              },        },                     xAxis:{                title: {                text: '时间',                style: {                    color: '#4572A7'                }            },            type: 'datetime',            minTickInterval: interval,//间隔值                       labels: {                             formatter: function () {                                 return Highcharts.dateFormat(formats,this.value);                                                 },                rotation:30,//倾斜30度,防止数量过多显示不全            },        },        yAxis:{        gridLineWidth:1,        minorGridLineWidth:1,        title:{        text:'水位(米)',        style:{        color:'#4572A7'        },        },        labels:{        formatter:function(){        return this.value;                        },        style:{        color:'#4572A7'        },        },             min: min,  //最小max:max,//最大         },        series:[{ name: '水位',            color: '#4572A7',            type: 'line',          tooltip: {                valueSuffix: '米',            },            data: alldata1, },//],});}    


1 0
原创粉丝点击