У меня есть Гантт, который показывает продолжительность текущих проектов. Этот Гант загружает данные из базы данных phpmyadmin. В моей базе данных есть, например, id: 1 text: project1 start_date: 2020-02-28 00:00:00 duration: 0 Таким образом, он должен отображать эту задачу с длительностью 0. Все проекты с длительностью 0 и с этой start_date начинаются за один день до 2020-02-27, и задание показывается с продолжительностью 1.
gantt.config.date_format = "%Y-%m-%d %H:%i";
gantt.config.duration_unit = "hour"
gantt.config.scales = [
{unit: "month", step: 1, format: "%F, %Y"},
{unit: "week", step: 1, format: function (date) {
return "Week #" + gantt.date.getWeek(date);
}},
{unit: "day", step: 1, format: "%D", css: function(date) {
if(!gantt.isWorkTime({ date: date, unit: "day"})){
return "weekend"
}
}}
];
gantt.config.work_time = true;
gantt.templates.scale_cell_class = function(date){
if(!gantt.isWorkTime(date)){
return "weekend";
}
};
// 0 refers to Sunday, 6 - to Saturday
gantt.ignore_time = function(date){
if(date.getDay() == 0 || date.getDay() == 6)
return true;
};
gantt.init("gantt_here");
gantt.load("/api/data");
var dp = new gantt.dataProcessor("/api");
dp.init(gantt);
dp.setTransactionMode("REST");
Время работы от 0 до 8 (8 часов) и с понедельника по пятницу. Я не знаю, почему у меня смещение на +1 час по продолжительности и смещение на -1 день при начальной дате.