Проблема в разборе поля даты в кодировке JSON на Google-диаграмме

Я сталкиваюсь с проблемой при реализации ‘ChartRangeFilter’ контроль в Google диаграммах, который использует поле даты в качестве фильтра диапазона. Я выбираю данные из базы данных MySQL, используя подход JSON (данные в кодировке JSON) и использую его для визуализации линейной диаграммы в моем приложении Laravel.

Если я использую поле Дата в качестве типа данных String, то это работает, но тогда я не могу реализовать ‘ChartRangeFilter’ поскольку он работает только с полями чисел и типов данных, и поэтому в моем представлении жестко заданы целые данные с помощью конструктора Date. например, новая дата (год, месяц, день).

Но жесткое кодирование данных не является возможным решением, поэтому есть альтернативное решение, в котором я могу использовать поле даты в JSON-кодировке в ‘ChartRangeFilter’в гугл чартах?

Вот мой фрагмент кода с жестко закодированными примерами данных.

function drawChart() {

var jsonData = $.ajax({
url: 'get_salesthree',
dataType: 'json',
async: false
}).responseText;

var data = new google.visualization.DataTable(jsonData);
var Data = new google.visualization.DataTable();

Data.addRows([
[new Date(2011, 01, 00),    9102,   0,      2150,   10026,  332,    5097,   28989,  16620,  90770,  1805,   0,      735,    30212,  9185,   5578 ]

0

Решение

Я решил это, изменив формат даты в моем PHP-коде, а затем закодировав его в JSON таким образом, чтобы это было понятно диаграмме Google.

Вот мой фрагмент кода PHP, который содержит изменения в формате даты при кодировании в JSON.

foreach($salesthree as $salethree)
{

$date = substr(($salethree->Datetime), 0, 10);
$dateArr = explode('-', $date);
$year = $dateArr[0];
$month = $dateArr[1] - 1; // subtract 1 because javascript uses a zero-based index for months
$day = $dateArr[2];
$json['rows'][] = array('c' => array(
array('v' => "Date($year, $month, $month)"),
array('v' =>$salethree->Chevrolet),
array('v' =>$salethree->Datsun),
array('v' =>$salethree->Fiat),
array('v' =>$salethree->Ford)
));
}

return $json;
}

Теперь мой JSON выглядит так.

 {"cols":[{"label":"Date","type":"date"},{"label":"Chevrolet","type":"number"},{"label":"Datsun","type":"number"},{"label":"Fiat","type":"number"},{"label":"Ford","type":"number"}],"rows":[{"c":[{"v":"Date(2011, 0, 31)"},{"v":9102},{"v":0},{"v":2150},{"v":10026},{"c":[{"v":"Date(2011, 1, 28)"},{"v":8634},{"v":0},{"v":1839},{"v":9293},{"c":[{"v":"Date(2011, 2, 31)"},{"v":8736},{"v":0},{"v":1860}]}]}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]