2013-10-01 2 views
0

Я пытаюсь получить данные из базы данных с помощью json и использовать ее для построения диаграммы с высокой загрузкой, но проблема в формате даты, я получаю временные метки unix в миллисекундах. Его хранится как тип float, но когда я его извлекаю, он отображается как строка. я даже использовал преобразование INT, но затем он дает 2147483647 (потому, что его большое количество. Пожалуйста, помогите
Вот выход для PHP страницы (JSON обратного вызова)Формат даты JSON для Highstocks

[ 
["1380648572000",224], 
["1380648594000",223] 
] 

Вот jsfiddle

http://jsfiddle.net/c8mKp/

+0

- это метки времени javascript. Просто удалите правые 3 символа, чтобы получить секунды. Это не так хорошо, как округление, но так как вы не можете обойти негабаритные числа в любом случае, отрубание - это лучшая вещь. –

+0

это не проблема, проблема в массиве не должна содержать кавычек. «1380648572000» должен быть 1380648572000. его тип данных с плавающей запятой, как я исправить его и вернуться к json_encode ?? спасибо за помощь, хотя –

+0

Вы находитесь на 32-битном PHP. Вы можете * NOT * иметь целые числа, превышающие 2147483647. Кавычки заставляют PHP видеть эти числа как строки, сохраняя все цифры для вас. –

ответ

0

Это похоже на неправильную кодировку json, но вы должны использовать JSON_NUMERIC_CHECK как флаг или использовать строку, а затем проанализировать по parseFloat() значение каждого x.

+0

Пробовал JSON_NUMERIC_CHCEK, и это то, что я получаю [1.380648572e + 12,224], [1.380648594e + 12,223] –

+0

Вам нужно подготовить свои данные как плавающие без математической энергии. –

+0

невозможна его не математическая сила, ее ошибка с плавающей точкой в ​​больших количествах –

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