Передача массива с 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")

→ Ссылка