You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Highcharts Gantt设置初始开始和结束日期?

Highcharts Gantt 加载时指定时间范围(今日至未来一个月)

要让Highcharts Gantt加载时直接显示今日至未来一个月的时间范围,只需在图表配置中添加xAxis选项,通过min和max属性指定起始和结束的UTC时间戳即可。

步骤说明

  1. 计算今日0点的UTC时间戳(重置时分秒,确保从当天起始时刻开始)
  2. 计算未来一个月的UTC时间戳
  3. 在图表配置的xAxis中设置min和max参数

修改后的完整代码

// 计算今日0点的UTC时间
const today = new Date();
today.setHours(0, 0, 0, 0);
const todayUTC = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate());

// 计算未来一个月的UTC时间
const nextMonth = new Date(today);
nextMonth.setMonth(nextMonth.getMonth() + 1);
const nextMonthUTC = Date.UTC(nextMonth.getFullYear(), nextMonth.getMonth(), nextMonth.getDate());

Highcharts.ganttChart('container', {
  rangeSelector: {
    enabled: true,
    selected: 0
  },
  xAxis: {
    min: todayUTC,
    max: nextMonthUTC
  },
  yAxis: {
    uniqueNames: true,
    categories: ['A', 'B', 'C'],
  },
  series: [{
    type: 'line',
    zoneAxis: 'x',
    data: [{
      y: 0,
      x: Date.UTC(2022, 10, 18),
    }, {
      y: 0,
      x: Date.UTC(2022, 10, 25),
    }]
  }, {
    type: 'line',
    zoneAxis: 'x',
    data: [{
      y: 1,
      x: Date.UTC(2022, 10, 26),
    }, {
      y: 1,
      x: Date.UTC(2022, 10, 30),
    }]
  }, {
    type: 'line',
    zoneAxis: 'x',
    data: [{
      y: 2,
      x: Date.UTC(2021, 10, 26),
    }, {
      y: 2,
      x: Date.UTC(2023, 10, 30),
    }]
  }]
});

关键说明

  • xAxis.min 和 xAxis.max 会强制图表加载时锁定指定时间区间,优先级高于rangeSelector的默认缩放设置
  • 重置时分秒的操作避免了当前时刻导致的起始时间偏移,确保从当日零点开始显示
  • 加载完成后,用户仍可通过rangeSelector切换其他时间范围

内容的提问来源于stack exchange,提问作者SixtyEight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:10:29