2015-10-05 13 views
7

timestamps influxDB trông như thế này:C3.js - Làm thế nào để xác định định dạng dấu thời gian khi âm mưu chuỗi thời gian lấy từ InfluxDB

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

Câu hỏi đặt ra là những tùy chọn tôi nên sử dụng cho x-axis khi Tôi tạo biểu đồ với C3.js

Lỗi tôi nhận được:

"Không thể phân tích cú pháp x '2015-01-29T21: 55: 43.702900257Z' to Date đối tượng"

lẽ jsfiddle này sẽ giúp bạn làm một số xét nghiệm nhanh ... Tôi nghĩ rằng vấn đề là với định dạng thời gian nhưng bất cứ đề nghị khác được chào đón:

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

InfluxDB phát ra dấu thời gian RFC3339. Tìm kiếm nhanh hiển thị [vài] (http://stackoverflow.com/questions/10531276/javascript-using-datejs-to-parse-rfc3339-datetime) [đề xuất] (http://stackoverflow.com/questions/11318634/how-to-convert-date-in-rfc-3339-to-the-javascript-date-objectmilliseconds-since) để phân tích cú pháp dấu thời gian RFC3339 trong javascript. – beckettsean

Trả lời

17

Trước tiên, tôi đã có thêm xFormat bởi vì như @das Keks nói here:

"Định dạng trong trục Đối tượng chỉ định nghĩa cách ngày sẽ được hiển thị. Nếu bạn muốn chỉ định định dạng cho ngày phân tích, bạn phải sử dụng xFormat trong đối tượng dữ liệu ".

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

Đối với xFormat options thấy D3.js/Time Formatting


Second , để chuyển sang đúng định dạng, tôi đã thay đổi mọi dấu thời gian bằng cách trước tiên tạo đối tượng Ngày với Date() và sau đó bằng cách sử dụng dateObj.toISOString().Ví dụ, mở bảng điều khiển của bạn và thử cách này:

> new Date('2015-09-30T12:21:41.447494312Z').toISOString(); 
> "2015-09-30T12:21:41.447Z" 
Các vấn đề liên quan