2015-10-05 3 views
7

influxDB Zeitstempel sehen wie folgt aus Plotten:C3.js - Wie das Zeitformat zu spezifizieren, wenn Zeitreihen genommen von InfluxDB

  • 2015-01-29T21:55:43.702900257Z

Die Frage ist, welche Optionen sollte ich für die x-axis verwenden, wenn ich erzeugen die Grafik mit C3.js

Der Fehler erhalte ich:

"x Fehler beim Parsen '2015-01-29T21: 55: 43.702900257Z' to Date-Objekt"

Vielleicht denken diese jsfiddle helfen Ihnen einige schnelle Tests machen ... ich das Problem mit das Zeitformat, aber andere Vorschläge sind willkommen:

axis: { 
    x: { 
     type: 'timeseries', 
     tick: { 
      format: '%Y-%m-%d' 
     } 
    } 
} 
+0

InfluxDB gibt RFC3339-Zeitstempel aus. Eine schnelle Suche zeigt ein [einige] (http://stackoverflow.com/questions/10531276/javascript-using-datejs-to-parse-rfc3339-datetime) [Empfehlungen] (http://stackoverflow.com/questions/11318634)/how-to-convert-Datum-in-RFC-3339-zu-dem-Javascript-Datum-objectmilliseconds-seit) für die Analyse von RFC3339 Zeitstempel in Javascript. – beckettsean

Antwort

17

Zuerst habe ich xFormat hinzuzufügen hatte, weil, wie @das Keks sagt here:

"Das Format im Achsenobjekt definiert nur, wie das Datum angezeigt wird. Wenn Sie das Format für das Datum angeben möchten Parsen Sie xFormat in dem Datenobjekt verwenden.“

data: { 
    x: 'x', 
    xFormat: '%Y-%m-%dT%H:%M:%S.%LZ', 
    columns: [ 
     ['x', ... ], 
     ['data1', ... ] 
    ] 
} 

Für die xFormat options siehe D3.js/Time Formatting


Zweite Um das richtige Format zu erhalten, habe ich jeden Zeitstempel geändert, indem ich zuerst ein Date-Objekt mit Date() und dann mit dateObj.toISOString() erstellt habe, zum Beispiel, öffne deine Konsole und versuche dies:

> new Date('2015-09-30T12:21:41.447494312Z').toISOString(); 
> "2015-09-30T12:21:41.447Z"