2014-01-17 61 views
2

我用jQplot與primeFaces。蜱後日期格式jqplot categoryaxisrenderer添加

我想對於爲CategoryAxis(日期以毫秒計)的日期格式。

我發現不同的解決方案,對堆棧但問題似乎是我的蜱:他們增加了創建和選項/格式「後,」沒有考慮到。

ticks: this.cfg.categories, 

我datetickformatter,定製datetickformatter,CanvasAxisTickRenderer,和編輯CanvasAxisTickRenderer的測試。徒然。

this.cfg.axes = { 
    xaxis: { 
     renderer: $.jqplot.CategoryAxisRenderer, 
     rendererOptions: { 
      tickRenderer: $.jqplot.CanvasAxisTickRenderer 
     }, 
     tickOptions: { 
      formatString: '%a.', 
      fontSize:'7pt', 
     }, 
     ticks: this.cfg.categories, 
    }, 

謝謝, Ju。

回答

2

我一直在使用CategoryAxisRenderer和CanvasTickRenderer的組合發現了同樣的問題。我想出了用JavaScript手動分類的解決方案,然後將它們傳遞給渲染器。在你的情況下,你可以使用以下作爲你的primefaces圖表的擴展:

function extender() { 

var millis = this.cfg.categories; 
var dates = new Array(categories.length); 

for (var i = 0; i < categories.length; i++) { 
    dates[i] = new Date(categories[i]).toLocaleDateString(); 
} 

this.cfg.axes = { 
    xaxis : { 
     renderer : $.jqplot.CategoryAxisRenderer, 
     rendererOptions : {    
      tickRenderer : $.jqplot.CanvasAxisTickRenderer, 
      tickOptions : { 
       fontSize:'7pt'         
      }, 
      ticks : dates 
     } 
    } 
}; 
} 
+0

工作對我來說。 警告:不要忘記Date需要一個數字而不是一個字符串。更多信息: [http://stackoverflow.com/questions/17371302/new-datemilliseconds-returns-invalid-date](http://stackoverflow.com/questions/17371302/new-datemilliseconds-returns-invalid-date ) '日期[I] =新日期(+ this.cfg.categories [I])toLocaleDateString();' 非常感謝。 –