Highchart负面时间

时间:2017-11-22 19:22:57

标签: javascript highcharts

我从互联网上得到了一个关于高图日期和时间的例子。

Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    title: {
        text: 'Time Worked per Day'
    },
    xAxis: {
        type: 'category'
    },
    yAxis: {
					
        labels: {
					
            formatter: function() {
                return Highcharts.numberFormat(this.value/3600000,0);
            }
        },
        title: {
            text: 'Hours'
        },
        tickInterval: 3600000
    },

    credits: {
        enabled: false
    },
    legend: {
        enabled: false
    },
    plotOptions: {
        series: {
            borderWidth: 0,
            dataLabels: {
                enabled: true,
                formatter: function() {
                    return  Highcharts.dateFormat('%Hh%M',new Date(this.y));
                }
            }
        }
    },
    tooltip: {
        formatter: function() {
            return  '<b>' + this.series.name +' : </b>' +
                Highcharts.numberFormat(this.y/3600000,2);
        }
    },
    series: [{
        name: 'Hours',
        colorByPoint: true,
        data: [ ["23-05-16", 9000000], ["24-05-16", 7000000],["25-05-16", 9000000], ["26-05-16", 7000000], 
        ["27-05-16", 8000000], ["28-05-16", 9000000], ["29-05-16", 7000000], ["30-05-16", 8000000], ["01-06-16", 8000000], ["02-06-16", 8000000]]
    }]
    
});

问题是当一个put负值,它有23:00,例如显示-01:00,这个事件因为这个Highcharts.numberFormat(this.y / 3600000,2)我有当做负值时做一个if(3600000,2 / this.y)intead(this.y / 3600000,2)

https://screenshot.net/9o88nt7

1 个答案:

答案 0 :(得分:0)

我没有真正看到任何问题,无论如何,我认为你是在显示负值后-x.xx小时而不是24 - x.xx小时。我在datalabel格式化程序中添加了if,如下所示:

plotOptions: {
  series: {
    dataLabels: {
      enabled: true,
      formatter: function() {
        if (this.y < 0) {
          return Highcharts.dateFormat('-%Hh%M', new Date(Math.abs(this.y)));
        } else {
          return Highcharts.dateFormat('%Hh%M', new Date(this.y));
        }
      }
    }
  }
}

现在显示负值为-x.xx小时。

工作示例: http://jsfiddle.net/ewolden/y5ygdx2a/