2013-08-20 3 views
2

highcharts получает мой час неправильныйhighcharts получает мой час неправильный

Я из venezuela на всякий случай. Я делаю систему реального времени, где я получаю в моем дб времени, секунду и миллисекунды, как 10: 39: 09: 2

Я применяю StrToTime ($ времени), то я отослано по JSON для намеченных

и в моем 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

БД хранит время как венесуэльское время, но когда оно доходит до высоких графиков, время изменяется полностью. Я думаю, потому что данные, которые я отправляю, содержат miliseconds и 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

Я не уверен, как реализовать. Но время, которое я приношу из своего db (это pgsql), и отправка json уже находится в моем часовом поясе, но когда он попадает в highcharts, изменился на другое datetime. – rrey

0

Highcharts не включает в себя часовые пояса, и только то, что вы можете сделать, это отключить UTC, у вас есть. Чтобы вывести правильные данные, вам необходимо перевести свои данные или использовать форматирование меток/форматирования меток.

+0

как бы вы перевели данные? – rrey

+0

Добавить в значение, необходимое для форматирования, например: 'formatter: function() {return Highcharts.dateFormat ('% H:% M', this.value + 2 * 3600 * 1000); } 'Где значение после' + '- это значение, которое вы хотите добавить. –

Смежные вопросы