2016-01-26 279 views
0

我有一種情況,我需要顯示在Highchart中從服務器收到的確切時間。日期時間不應基於服務器時區或客戶端時區更改。Highcharts - 折線圖使用錯誤的TimeZone

我已在UTC設置爲true:

Highcharts.setOptions({ 
    global: { 
     useUTC: true, 
     timezoneOffset: 0 
    } 
}); 

而且我傳遞毫秒爲單位的數據:

for (i = 0; i < xAxisData.length; i++) { 
     item = xAxisData[i]; 
     dateMiliseconds = parseInt(item.DateTime.replace('/Date(', '')); 
     var obj = { x: dateMiliseconds, title: item.FlagText, text: item.Text }; 
     xData.push(obj); 
    } 

然後設置一系列這樣的:

$scope.chartConfig.series.push({ 
     type: 'flags', 
     data: xData, 
     onSeries: 'mileageSeries', 
     shape: 'squarepin', 
     name: 'Events', 
     title: 'Events', 
     id: "Events" 
     //width: 16 
    }); 

現在如果我有服務器與UTC日期時間系統設置,一切工作正常。

enter image description here

但是,當我與UTC + 5日期時間系統設置的服務器的圖形是錯誤的:

enter image description here

我需要的是無論什麼服務器時區是無不管客戶端時區是什麼,它應該顯示7:42。 7:42時間從服務器發送在這兩種情況下的數據是相同的:

DateTime: "/Date(1453776133000)/" 
    DateTimeString: "26/01/2016 07:42:13" 
+1

您可能需要設置動態TZ偏移量,請參閱http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/global/gettimezoneoffset/ –

回答

1

我也許是錯的,但問題不是你正在使用UTC?通過useUTC設置爲false,我認爲你會使用你的日期時間的精確值,無論是服務器/客戶端時區

+0

當我將UTC設置爲false時,UTC時間服務器將另外5個小時添加到日期 –

0

您可以設置Highcharts應使用如下的時區:

Highcharts.setOptions(global : { 
    timezoneOffset: 180 
}); 

timezoneOffset使用時間在幾分鐘內

+0

爲什麼設置timezoneOffset爲180? –

+0

因爲這是我的時區:p(-03:00) –

+0

我不明白它是如何解決問題的。你在說我應該添加客戶端的時區? –