addCalendar

在甘特图中插入一个日历

string addCalendar(CalendarConfig calendar);
calendarCalendarConfig一个包含日历配置的对象
string日历的标识符

Example

// 添加一个已有的日历
var calendarId = gantt.addCalendar(calendar);
 
// 使用新的配置添加一个日历
var calendarId = gantt.addCalendar({
    id:"custom", // 可选
    worktime: {
        hours: ["8:00-17:00"],
        days: [ 1, 1, 1, 1, 1, 1 ,1]
    }
});
 
var calendar = gantt.getCalendar(calendarId);

Related samples

Details

日历配置对象可以包含以下属性:

  • id? - (string | number) - 可选,日历的标识符
  • worktime? - (object) - 定义工作日和工作时间。可以包含:
    • hours? - (string[] | number[] | boolean) - 可选,指定全局工作时间的数组,定义任务的开始和结束时间
    • days? - (WorkDaysTuple) - 可选,包含7个元素的数组,表示一周中的每天(0 - 周日,6 - 周六),1/true 表示工作日,0/false 表示非工作日
    • customWeeks? - (object) - 可选,定义不同时间段的不同工作时间规则的对象。由键值对组成,键为时间段名称,值为描述该时间段属性的对象。
      • [timespan: string] - (object) - 具有该时间段工作时间设置的对象。键作为时间段名称。
        • from - (Date) - 时间段的起始日期
        • to - (Date) - 时间段的结束日期
        • hours? - (Array<string | number>) - 可选,工作时间区间数组,格式为“开始-结束”对。false 表示休息日,true(默认)表示使用默认时间(["8:00-17:00"])
        • days? - (WorkDaysTuple | boolean) - 可选,包含7个元素的数组,表示一周中的每天(0 - 周日,6 - 周六),1/true 表示工作日,0/false 表示非工作日。

为特定日期设置自定义工作时间

除了指定星期几的数字外,还可以为该天设置自定义工作时间。
例如:

var calendar = {
    id:"calendar1", // 可选
    worktime: {
        hours: ["8:00-17:00"],
        days: [ 0, 1, 1, 1, ["12:00-17:00"], 1, 0]
    }
}

这里,["12:00-17:00"] 表示周四的工作时间为中午12点到下午5点。

为不同时间段定义工作时间

你可以使用 customWeeks 属性为不同时间段指定不同的工作时间规则:

// 使用新配置添加日历
gantt.addCalendar({
    id:"default", // 可选
    worktime: {
        hours: ["8:00-17:00"],
        days: [ 1, 1, 1, 1, 1, 1 ,1],
        customWeeks: {
            winter: {
                from: new Date(2020, 11, 1),// 2020年12月1日
                to: new Date(2021, 2, 1),// 2021年3月1日 00:00
                hours: ["9:00-13:00", "14:00-16:00"],
                days: [ 1, 1, 1, 1, 0, 0, 0]
            }
        }
    }
});
See also
Change log
  • customWeeks 属性于 v7.1 引入;
  • 于版本 4.2 添加
Back to top