javascript - c3 grafiği - zaman serisi x eksenini AM/PM yerel saat olarak göster
C3 grafik kütüphanesini kullanıyorum ve X ekseni değerlerinin UTC ISO 8601 formatında olduğu zaman serisi verilerim var, örneğin 2017-01-27T11:24:36.012Z (new Date().toISOString() kullanarak aldığınız aynı format). Tıkların yerel saatte görüntülenmesini istiyorum.
Grafiği şu şekilde kurdum...
var now = new Date().toISOString();
this.lineChart = generate({
bindto: '#line',
transition: {
duration: 1000
},
data: {
x: 'x',
xFormat: '%Y-%m-%dT%H:%M:%S.%LZ',
columns: [
['x', now],
['data1', 0]
]
},
axis: {
x: {
type: 'timeseries',
localtime: true,
tick: {
format: '%H:%M %p',
culling : true,
rotate : 60
}
}
}
});
ve sonra ekstra verileri yükle, burada bir başlangıç ve bitiş zamanım var, ve her 15 dakikada bir nokta göstermek istiyorum..
let startTime = new Date(startDateTime);
let endTime = new Date(endDateTime);
let nextDate = startTime;
let dates = new Array<string>();
dates.push(nextDate.toISOString());
let data = [];
while (nextDate <= endTime) {
nextDate = moment(nextDate).add(30, 'm').toDate();
dates.push(nextDate.toISOString());
data.push(0); // to make them show up!
}
this.lineChart.load({
columns: [
['x', ...dates],
['myData', ...data]
]
})
Bu şu sonucu verir...
Burada iki şey yanlış.
Veriler UTC saatine göredir, yani ilk değer 22:00 UTC'dir; yerel saat +8:00 saat olmalıdır (benim bölgem için)
Eğer 22:00 doğru olsaydı, bunun 24 saat formatı değil, 10:00 PM olarak görünmesi gerektiğini düşünürdüm.
Gördüğüm kadarıyla biçim dizeleri doğru görünüyor.
Burada neyin yanlış olabileceğini bilen var mı?
Herhangi bir yardım için şimdiden teşekkürler.
