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ış.

  1. 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)

  2. 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.