Available only in PRO Edition

在时间刻度中隐藏时间单位

此功能仅在 PRO 版本中可用

该库允许您在图表的时间刻度中隐藏不必要的时间单位。例如,如果您只想显示工作日并排除周末,这会非常有用。

要在刻度中隐藏某个时间单位,通常需要使用 ignore_time 方法。该方法是一个函数,接收单元格的日期作为参数。若要隐藏特定单位,该函数应对该日期返回 true

例如,若要在刻度中隐藏周末,可以这样使用该方法:

// 0 代表星期天,6 代表星期六
gantt.ignore_time = function(date){
   if(date.getDay() == 0 || date.getDay() == 6)
      return true;
};

Related sample:  Not render weekends on the scale

请注意,从刻度中隐藏时间单位不会将其从任务持续时间的计算中移除。如果您想在持续时间计算中排除隐藏的单位, 请参阅文章 工作时间计算 中描述的方法

在处理 工作时间计算 时,您可以使用 isWorkTime 来替代硬编码的数值:

gantt.ignore_time = function(date){
   if(!gantt.isWorkTime(date))
      return true;
};

Related sample:  Calculate working hours

需要注意的是,ignore_time 方法并不会改变刻度本身。以下示例说明了没有工作时间或工作日的单元格是如何被隐藏的。

示例 1

一天的刻度从 00:00 到 23:59,工作时间为 08:00 到 16:59。如果您有一个以小时为最小单位的刻度并应用了 ignore_time,则所有刻度中代表非工作时间的单元格都会被隐藏。这意味着日刻度实际上会从 08:00 到 16:59。然而,如果您只有一天的刻度,它仍然会从 00:00 到 23:59,因为这一天内存在工作时间。

示例 2

一周的刻度包含 7 天,其中有 2 天为休息日(如星期六和星期天)。如果最小刻度为天并应用了 ignore_time,休息日会被隐藏,因此周刻度将只显示星期一到星期五。但如果您只有周刻度,它仍然会从星期一开始,到星期天结束,因为这一周包含休息日。

有两种方式可以显示隐藏了时间单位的图表:

  • 添加一个更小单位的刻度(例如,在日刻度旁添加小时刻度,或在周刻度旁添加日刻度)
  • 使用 自定义刻度 只渲染工作时间或工作日

Related sample:  5-day work weeks on the scale

Back to top