2017-07-18 5 views
1

Ich habe einige Tage damit zugebracht, die UTC-Zeit in einem Flächendiagramm mit Angular2-HighCharts zu ändern. Mein Back-End Api gibt mir einen Timestamp zurück, dann injiziere ich es in die Tabelle und jedes Mal, wenn es in "Human Time" mit zwei Stunden weniger konvertiert, weiß ich, dass Highcharts die UTC-Zeit verwenden, aber ich bin momentan in GMT + 2 als Oslo-Zeit. Ich habe versucht, "timezoneOffset" in SetOptions.global.timezoneOffset zu implementieren und die Werte ändern, aber es ändert nichts in meinem Ansichtsdiagramm .. vielleicht habe ich diesen Wert nicht richtig implementiert. Vielleicht könnte ich auch den Zeitstempel von meinem PC (getTimezoneOffset in Moment.js Bibliothek wie in den Highcharts doc api, also wenn jemand eine IdeeWie ändere ich die Zeitzone in Angular2-HighCharts?

Hier ist mein chart.ts:

constructor(public userService3: UserService3) { 


     this.options = { 
     title : { text : '' }, 
     setOptions: ({ 
     global: { 
      useUTC : true, 
      timezoneOffset: 2 * 60 
     } 
     }), 
     chart: { type: 'area'}, 
     legend: { enabled: false }, 
     credits: { enabled: false }, 
     xAxis: { type: 'datetime', 
       startOnTick: false, 
       endOnTick: false, 
       tickInterval: 36e5 * 2, // two hours 
       }, 
     yAxis: { min: 0, 
      max: 100 }, 
     plotOptions: { 
      series: { 
       color: '#648e59', 
       fillOpacity: 0.8, 
       fillColor: '#648e59', 
       pointInterval: 36e5 * 2 // two hours 
         } 
      }, 
      series: [{ 
       name: 'Someone1', 
       data: [], 
      }] 
     }; 
    } 
    saveInstance(chartInstance) { 
    this.chart = chartInstance; 
    console.log(chartInstance); 
} 

    public ngOnInit() { 
    this.dataSubscription = this.userService3.getData().subscribe((data) 
=> { 
     this.options.series[0].data = data.data.operating_details; 
     console.log(data); 
    }); 
} 
    ngOnDestroy() { 
     if (this.dataSubscription){ 
this.dataSubscription.unsubscribe(); 
} 
    } 

und hier die html:.

 <chart [options]="options" (load)="saveInstance($event.context)"> 
     </chart> 

Antwort

2

Sie Zeitzone von Highcharts.setOptions() -Methode Offset ändern kann - es ist eine statische Funktion Highcharts

i es s eine Erklärung in docs wie statische Highcharts Methoden zuzugreifen:

const Highcharts = require('highcharts'); 

Highcharts.setOptions({ 
    global: { 
    timezoneOffset: 2 * 60 
    } 
}); 

@NgModule({ 
    ... 
    imports: [ 
     BrowserModule, 
     ChartModule.forRoot(
     Highcharts 
    ) 
    ], 
}) 

Beispiel: http://plnkr.co/edit/oRuBmb46sUdbkMAnbStX?p=preview

+0

Dank für Ihre Hilfe, aber ich habe nur ein Problem mit dem Code ich bereits forRoot mit dem RouterModule von Angular für die Verwendung Benutzer Links zu Differents Modul in meiner App (RouterModule.forRoot (routeConfig),) –

+0

Ich finde einen Weg, um es funktioniert zu machen! Ich füge einfach hinzu: Export deklarieren lassen erfordern: any; oben auf meiner Komponente, wo ich das Diagramm verwende, fand ich es dort, wenn es jemanden helfen könnte "https: // github.com/gevgeny/angular2-highcharts/issues/193" –

Verwandte Themen