2013-08-20 14 views
2

highcharts得到我的小時時間錯誤highcharts得到我的小時時間錯誤

我來自委內瑞拉以防萬一。我做一個實時系統,我在我的數據庫獲取的時間,秒,毫秒像 10:39:09:2

我應用的strtotime($時間),那麼我通過JSON sended來繪製

在我highcharts我在

xAxis: { 
    type: 'datetime', 
    title: { 
    text: 'Tiempo' 
    } 

的UTC功能已經是假的

Highcharts.setOptions({ 
    global: { 
    useUTC: false 
    } 
}); 

和我的函數來獲取JSON得到的是

function requestData_Frecuencia() { 
    $.ajax({ 
    url: 'Datos_Frecuencia.php', 
    success: function (point) { 
     var series = chart_Frecuencia.series[0], 
     shift = series.data.length > 400; 
     //add point 
     chart_Frecuencia.series[0].addPoint(eval(point), true, shift); 
     setTimeout(requestData_Frecuencia, 500); 
    }, 
    cache: false 
    }); 
} 

PS。已經有一段時間了,因爲我用英文寫作,所以如果我寫了一些不明確的錯誤,請原諒我。

+0

那麼,究竟有什麼問題呢?數據提前一小時,後面,完全不同? – wergeld

+1

您的數據庫存儲的時間可能不是使用委內瑞拉的區域設置。 –

+0

數據庫存儲像委內瑞拉時間的時間,但當它到達高層圖時,時間變化完成。我認爲,因爲我發送的數據包含毫秒和highcharts支持,直到秒(我想,我不確定) – rrey

回答

0

我發現我做錯了(found the answer here)。我曾經讓我的時間像php:

while($r2 = pg_fetch_array($sth)) { 
    $hora = $r2['hora']; 
    $Frecuencia = $r2['frecuencia']; 
} 
$x=strtotime($hora); 

我需要乘以1000的時間。我想,是因爲我需要建議的日期是在毫秒的形式(即整數)

while($r2 = pg_fetch_array($sth)) { 
    $hora = $r2['hora']; 
    $Frecuencia = $r2['frecuencia']; 
} 
$x=strtotime($hora)*1000; 

PD:感謝大家反正給出的建議和對策。我真的很感激

0

您應該檢查數據庫中的原始值。我知道MySQL在GMT中存儲日期。不知道你正在使用的數據庫,但這樣做的原因是:

GMT是絕對時間參考&不隨季節變化。

你將不得不將時間轉換爲您的語言環境,這是UTC–04:30

看一看:Convert date to another timezone in JavaScript

+0

我不確定如何實施。 但我從我的數據庫(這是pgsql)和發送在JSON中的日期時間已經在我的時區,但是當它的highcharts更改爲另一個日期時間。 – rrey

0

Highcharts不包括時區,只有你可以做的是禁用UTC,你有。您需要翻譯您的數據或使用標籤格式器/工具提示格式器來顯示正確的數據。

+0

你會如何翻譯數據? – rrey

+0

添加格式化程序所需的值,例如:'formatter:function(){return Highcharts.dateFormat('%H:%M',this.value + 2 * 3600 * 1000); }''+'後面的值是你想要添加翻譯的值。 –