javascript - c3 graf - zobraziť časovú os x v miestnom čase AM/PM
Používam knižnicu grafov C3 a mám časové údaje, kde hodnoty pre os X sú vo formáte UTC ISO 8601, napríklad 2017-01-27T11:24:36.012Z (rovnaký formát, ktorý dostanete použitím new Date().toISOString()). Chcem zobraziť značky v miestnom čase.
Graf som nastavil nasledovne...
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
}
}
}
});
a potom načítať ďalšie dáta, kde mám čas začiatku a čas konca, a chcem zobraziť bod každých 15 minút..
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]
]
})
Toto produkuje nasledujúce...
Tu sú dve veci nesprávne.
Dáta sú v čase UTC, teda prvá hodnota 22:00 je UTC; miestny čas by mal byť +8:00 hodín (pre môj región)
Keby bolo správne 22:00, myslel by som, že by sa to malo zobraziť ako 22:00, nie v 24-hodinovom formáte.
Pokiaľ vidím, formátovacie reťazce vyzerajú správne.
Vie niekto, čo by tu mohlo byť zlé?
Vopred ďakujem za akúkoľvek pomoc.
