flot时区问题

基于jQuery的图形显示插件Flot,比较容易上手。

 

Flot对于以时间为X轴的数据展示,可以自动决定以多少为间距,在X轴上显示刻度。这样当数据很多时,X轴上的刻度就不会拥挤。要注意X值应为getTime()的结果。

 

但使用时发现Flot会将时间转换成UTC世界标准时间,使用的都是setUTCDate(), setUTCHours()等函数,取出来的时间比实际少8小时,只要将jquery.flot.js中的UTC全部去掉即可。

 

显示CPU占用率之类百分比的js

	//按默认方式,显示单个属性的趋势图,以时间为横轴
	 function plotSingleTrend(placeholder, dataset){
	 	 var plot = $.plot(placeholder,
	           [ dataset ], {
	               series: {
	                   lines: { show: true },
	                   points: { show: false }
	               },
	               grid: { hoverable: true, clickable: true },
	               xaxis: { mode: 'time' },
	               yaxis: { min: 0, max:100 }               
              
             });
             
          bindTooltip(placeholder);
               
         return plot;
	 }
	
	 
	 //显示数据点的提示信息
	 function showTooltip(x, y, contents) {
        $('<div id="tooltip">' + contents + '</div>').css( {
            position: 'absolute',
            display: 'none',
            top: y + 5,
            left: x + 5,
            border: '1px solid #fdd',
            padding: '2px',
            'background-color': '#fee',
            'font-size': '12px',
            opacity: 0.80            
        }).appendTo("body").fadeIn(200);
    }
    
    var previousPoint = null;
    function bindTooltip(placeholder){
    	placeholder.bind("plothover", function (event, pos, item) {      
	        if (true) {
	            if (item) {
	                if (previousPoint != item.datapoint) {
	                    previousPoint = item.datapoint;
	                    
	                    $("#tooltip").remove();
	                    var x = item.datapoint[0].toFixed(2),
	                        y = item.datapoint[1].toFixed(2);
	                    
	                    var dateTime = new Date();
	                    dateTime.setTime(x);	
						var dateTimeStr = dateTime.toLocaleString();
						dateTimeStr = dateTimeStr.replace(' ','');
						
						var context =  item.series.label + "(" + dateTimeStr + " = " + y+  ")";					
	                    
	                    showTooltip(item.pageX, item.pageY,
	                                context);
	                }
	            }
	            else {
	                $("#tooltip").remove();
	                previousPoint = null;            
	            }
	        }
   	 	});
   	}
 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值