Мы разрабатываем приложение в Extjs с помощью планировщика (bryntum).Планировщик имеет следующую конструкцию:
processTimelineViewScheduler: function(config) {
var me = this;
var startDate = new Date();
var endDate = new Date();
var cinema = MiscFunctions.getCinema();
var scheduleStart = cinema.schedulestart; // 06:00
var scheduleEnd = cinema.scheduleend; // 05:59
var partstart = scheduleStart.split(":");
var startHours = partstart[0];
var startMinutes = partstart[1];
var partend = scheduleEnd.split(":");
var endHours = partend[0];
var endMinutes = partend[1];
startDate.setHours(startHours);
startDate.setMinutes(startMinutes);
startDate.setSeconds(0);
endDate.setHours(endHours);
endDate.setMinutes(endMinutes);
endDate.setSeconds(0);
if (endDate.getTime() <= startDate.getTime()) {
endDate = Ext.Date.add(endDate, Ext.Date.DAY, 1);
}
Sch.preset.Manager.registerPreset("myHourAndDay", {
displayDateFormat : 'G:i',
shiftIncrement : 1,
shiftUnit : 'HOUR',
timeRowHeight : 75,
timeResolution : {
// Here we use Sch.util.Date.MINUTE constant value
unit : Sch.util.Date.MINUTE,
increment : 5
},
headerConfig : {
middle : {
// and here we use the last fraction Sch.util.Date.HOUR constant name
unit : 'HOUR',
dateFormat : 'G:i'
}
}
});
return Ext.apply(config, {
columns : [{
sortable: true,
width: 100,
dataIndex: 'Name',
flex: 1
}],
split: false,
readOnly: !MiscFunctions.hasRight('SHOW_WRITE'),
enableDragCreation: false,
viewPreset: {
name: 'myHourAndDay',
timeColumnWidth: 100,
},
highlightWeekends: false,
mode: 'horizontal',
startDate: startDate,
endDate: endDate,
weekStartDay: 3,
showTodayLine: true,
rowHeight: 65,
constrainDragToResource: false,
snapToIncrement: true,
eventResizeHandles: 'none',
eventBarTextField: 'Title',
crudManager: this.getCrudManager(),
});
}
переменные scheduleStart и scheduleEnd могут принимать значения 10:00 и 09:59 (на следующий день).
Планировщик произвольно устанавливает время начала и окончаниявремя в представлении (например, с 21:00 до 21:00).
Если переменные scheduleStart и scheduleEnd имеют значение 06:00 и 05:59 на следующий день, даты и время начала и окончания являются правильными ввид.