Передача массива с Data PHP/JS
Google charts для построение timeline требует массив данных следующего типа: $chart_data['p'][] = ["1", "22", "new Date(2020, 8, 1)", "new Date(2020, 8, 3)"];. Собираю массив в PHP. К сожалению если писать "new Date(2020, 8, 1)" в кавычках то скрипт не принимает данные. Скрипт с которым работаю - ниже:
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var container = document.getElementById('timeline');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'pl' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
dataTable.addRows([
[ "plan", new Date(1789, 3, 30), new Date(1797, 2, 4) ],
]);
chart.draw(dataTable);
}```
Как мне вписать ```new Date(1789, 3, 30)``` в массив создаваемый в PHP?
Ответы (1 шт):
Автор решения: Dmitry Punk
→ Ссылка
Вы видимо пример для JS скопировали. На JS это будет выглядеть так:
var b = { 'a': new Date(1789, 3, 30)};
JSON.stringify(b);
И в результате будет вот это:
"{"a":"1789-04-29T20:39:40.000Z"}"
Т.е. вам нужно на php собрать строку с датой и временем, чтобы получилось по формату аналогично 1789-04-29T20:39:40.000Z такой строке.
$dt_start = date("2020-08-01\T0:0:0\Z");
$dt_end = date("2020-08-03\T0:0:0\Z");
Дату форматируйте как date("Y-m-d\TH:i:s\Z")