2017-08-11 8 views
0

DST Stunde 2:00 bis 3:00 Uhr ist nicht gut auf highchart. Ich habe unter Daten.Highchart: inkorrekte Kerzentafel für die Tagessparzeit DST

[new Date('2017/03/12 01:00:00').getTime(), 10], 
    [new Date('2017/03/12 02:00:00').getTime(), 20], 
    [new Date('2017/03/12 03:00:00').getTime(), 30], 
    [new Date('2017/03/12 04:00:00').getTime(), 40], 
    [new Date('2017/03/12 05:00:00').getTime(), 50] 

prüfen Geige

http://jsfiddle.net/SurenderK/ko8dk2fd/4/

enter image description here

+0

Ich sehe aus wie es in Ordnung macht. API-Referenz: http://api.highcharts.com/highcharts/global.useUTC. –

+1

Es ist nicht so, dass es falsch rendert - es ist, dass Ihr Aufruf von 'getTime()' den gleichen Wert für 2:00 und 3:00 zurückgibt: '1489302000000'. Ich weiß nicht, warum das so ist, aber es funktioniert unabhängig von der Einstellung 'useUTC'. http://jsfiddle.net/ko8dk2fd/5/ – jlbriggs

+0

Es ist der gleiche Wert, weil um 3:00 die Sommerzeit eingespart wird und die Uhr auf 2:00 zurückgedreht wird. – ewolden

Antwort

0

fand ich eine Abhilfe für dieses. Problem war mit der Ordinate, die wir senden. als neues Date() deckt 2:00 und 3:00 zur gleichen Zeit für DST ab. Also müssen wir die rechten Ordinaten selbst in Millisekunden senden.

Ich habe eine Funktion convertInMill verwendet, die Zeit Zeichenfolge in UTC konvertiert und Zeitzone Offset zurück hinzufügen.

var convertInMill = function(stringDate) { 
    var obj, year, mnth, day, hr, min, sec, timeZoneOffset, timeInMillS; 

    timeZoneOffset = 1; // machine timezone offset with UTC timezone 

    obj = stringDate.split(/[\s/:-]+/); 
    year = obj[0]; 
    mnth = obj[1]; 
    day = obj[2]; 
    hr = obj[3]; 
    min = obj[4]; 
    sec = obj[5]; 

    timeInMillS = Date.UTC(year, mnth - 1, day, hr, min, sec) + (timeZoneOffset * 3600000); 

    return timeInMillS; 
} 

Series Datum

series: [{ 
    data: [ 
    [convertInMill('2017/03/12 00:00:00'), 10], 
    [convertInMill('2017/03/12 01:00:00'), 20], 
    [convertInMill('2017/03/12 02:00:00'), 30], 
    [convertInMill('2017/03/12 03:00:00'), 40], 
    [convertInMill('2017/03/12 04:00:00'), 50] 
    ] 
}]`` 

Unten Geige arbeitet für mich.

http://jsfiddle.net/SurenderK/ko8dk2fd/11/