2016-10-31 56 views
0

我試圖在highchart中實現datetime系列圖表。我提供UNIX時間戳,並將其繪製這樣的數據8小時的數據:在Highchart的x軸中設置datetime格式

enter image description here

正如你所看到的,我不知道這個圖表的日期。我想在第一點顯示日期('%e。%b')。現在,當一天的變化,它會自動顯示這樣的日期24時:

enter image description here

這是我實現現在:

 xAxis: { 
     type: 'datetime', 
     crosshair: true, 
     gridLineWidth: 0 
     } 

我嘗試使用格式如下圖所示,但它確實沒有顯示日期除了第一點:

 xAxis: { 
     type: 'datetime', 
     labels: { 
      formatter: function() { 
      if (this.isFirst) { 
       return Highcharts.dateFormat('%e. %b', this.value); 
      } 
      return Highcharts.dateFormat('%H:%M', this.value); 
      } 
     }, 
     crosshair: true, 
     gridLineWidth: 0 
     } 

我想寫一個格式化函數,在第一點並在午夜時分顯示日期和所有其他時間,以HH顯示時間:毫米?

+0

*「這表明在HH中的時間:毫米「*這正是你告訴它顯示的:'返回Highcharts.dateFormat('%H:%M',this.value);'我不清楚實際問題是什麼。 – jlbriggs

+0

@jlbriggs對不起,不清楚。我想顯示數據顯示爲%e的值。 %b在午夜左右。與默認格式化程序相似的值。 – SpaceX

回答

1

您可以使用getHours()檢查您的軸標籤的數據值的時間,並相應格式:

labels: { 
    formatter: function() { 
     if (this.isFirst) { 
     return Highcharts.dateFormat('%e. %b', this.value); 
     } 
     else { 
     var t = new Date(this.value); 
     var h = t.getHours(); 
     return h == 0 
      ? Highcharts.dateFormat('%e. %b', this.value) 
      : Highcharts.dateFormat('%H:%M', this.value); 
     } 

    } 
    } 

小提琴:

+0

謝謝先生,它工作:) – SpaceX