2017-07-18 38 views
1

我有几天的时间在试图使用Angular2-HighCharts在面积图中更改UTC时间。我的后端Api返回给我一些时间戳,然后我将它注入图表,每次它在“人类时间”中转换时间少于两个小时,我知道高位图使用UTC时间,但我目前采用GMT + 2作为奥斯陆时间。 我试图在SetOptions.global.timezoneOffset中实现“timezoneOffset”并更改里面的值,但它不会在我的视图图表中改变任何内容。可能我没有实现该值。 也许可以我也使用时间戳从我的电脑(使用getTimezoneOffset在Moment.js库作为Highcharts doc api,所以如果有人有一个想法如何更改Angular2-HighCharts中的时区?

这里是我的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(); 
} 
    } 

这里的HTML:

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

回答

2

您可以更改时区由Highcharts.setOptions(偏移)方法 - 它是一个静态Highcharts功能

有我■在docs解释如何访问静态Highcharts方法:

const Highcharts = require('highcharts'); 

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

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

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

+0

感谢您的帮助,但我刚刚得到一个问题与您的代码我已经与RouterModule使用forRoot从角为用户链接到我的应用程序中的differents模块(RouterModule.forRoot(routeConfig),) –

+0

我找到一种方法使它工作!我只是补充: export declare let require:any;在我使用图表的组件的顶部,我发现它在那里,如果它可以帮助某人'https:// github.com/gevgeny/angular2-highcharts/issues/193' –