В PHP делается выборка из базы и строится массив с данными, затем кодируется в JSON и отправляется JS скрипту где затем парсится JSON и строится диаграмма Гантта, данная диаграмма работает на библиотеке moment.js.
Объект выглядит так:
tasks: [{
        "id": 1,
        "resourceId": 1,
        "label": "Задача 1",
        "from": moment("7:00", "HH:mm"),
        "to": moment("9:00", "HH:mm"),
        "classes": "orange"
    }, {
        "id": 2,
        "resourceId": 1,
        "label": "Задача 2",
        "from": moment("9:30", "HH:mm"),
        "to": moment("11:00", "HH:mm"),
        "classes": "orange"
    }]
Сейчас, я делаю так, собираю массив на PHP:
$gantt_tasks[] = [
  'id' => 1,
  'label' => 'Задача 1',
  'resourceId' => 1,
  'from' => time(),//unix timestamp - это для примера
  'to' => time(),
  'classes' => 'orange',
];
...
$gantt_output = json_encode($gantt_tasks); // это отправляется в JS
Далее в JS:
var tasks = JSON.parse(gantt_output);
// И вот здесь перебирая каждый элемент и подставляю функцию moment 
tasks.forEach( function (item) {
  item.from = moment.unix(item.from).format("DD:MM:YYYY HH:mm");
  item.from = moment(item.from, 'DD:MM:YYYY HH:mm');
  item.to = moment.unix(item.to).format("DD:MM:YYYY HH:mm");
  item.to = moment(item.to, 'DD:MM:YYYY HH:mm');
});
Могу ли я сразу из PHP передать функцию чтобы JS ее выполнил? А не отображал как строку?