2016-04-14 7 views
0

Ich bin fast fertig mit meinem Highchart, aber ich bekomme es nicht fertig, das Datum/Zeitstempel korrekt aussehen zu lassen. Ich bin nicht sicher, ob es das Format für die xAxis ist, oder ob es das Format für die Serie ist.Highchart Timedate Format

enter image description here

Meine Daten: [{"x":"2016-04-08 12:11:02","y":32},{"x":"2016-04-08 14:22:07","y":2},{"x":"2016-04-11 10:10:06","y":4},{"x":"2016-04-11 11:56:35","y":2},{"x":"2016-04-11 12:16:20","y":2},{"x":"2016-04-11 14:09:27","y":2},{"x":"2016-04-11 15:03:31","y":1},{"x":"2016-04-11 20:18:41","y":1172},{"x":"2016-04-11 21:00:06","y":1014}]

$('#container').highcharts('StockChart', { 
     rangeSelector : { 
      selected : 1 
     }, 
     xAxis: { 
      type: 'datetime' 
     }, 
     title : { 
      text : 'test' 
     }, 
     series : [{ 
      name : 'signups', 
      data : data, 
      turboThreshold : 0 
     }] 
    }); 

Ich bin sicher, es ist eine kleine Sache mir fehlt. Dank

+1

Es versteht nicht das Format Ihres Zeitstempels, daher zeigt es Millisekunden von Unix-Zeit (1. Januar 1970). Erstellen Sie entweder für jeden Punkt ein neues Datum (Ihren Zeitstempel) oder übergeben Sie die Zeit in Millisekunden. –

+0

wäre es hilfreich, wenn Sie die Geige teilen können. – damseldeebi

+0

Also das ist vielleicht wh .., es will die Zeit in unixtime aber ich gebe es in JJJJ-MM-TT hh-mm-ss. –

Antwort

1

Für jede Ihrer Datum wandeln es in Date.UTC

var date = new Date(yourData[i].x); 
var year = date.getFullYear(); 
var month = date.getMonth(); 
var day = date.getDate(); 
var hours = date.getHours(); 
var minutes = date.getMinutes(); 
var seconds = date.getSeconds(); 
console.log(new Date(Date.UTC(year, month, day, hours, minutes, seconds))); 

Dann legen Sie sie in Serie Kann ziemlich lang sein, aber es wird funktionieren. Schauen Sie sich FIDDLE an: