Gantt Chart using CanvasJS

by ananyadeka

HTML

<script src="https://cdn.canvasjs.com/canvasjs.min.js"></script>
<div id="chartContainer" style="height: 400px; width: 100%;"></div>

JavaScript

var chart = new CanvasJS.Chart("chartContainer", {
  theme: "dark2",
  animationEnabled: true,
  exportEnabled: true,
  title: {
    text: "Product Release Gantt Chart",
    fontSize: 24    
  },
  axisY: {
    labelFormatter: function(e){
      return CanvasJS.formatDate(e.value, "MMM D, YYYY");
    },
    gridThickness: 1
  },
  toolTip:{
    contentFormatter: function ( e ) {
      return "<strong>" + e.entries[0].dataPoint.label + "</strong></br> Start: " +  CanvasJS.formatDate(e.entries[0].dataPoint.y[0], "MMM D - h:mm TT") + "</br>End : " +  CanvasJS.formatDate(e.entries[0].dataPoint.y[1], "MMM D - h:mm TT");
    },
    backgroundColor: "#f7f7f7",
    fontColor: "#333",
    borderThickness: 1,
    borderColor: "#ddd"
  },
  data: [
    {
      type: "rangeBar",
      dataPoints: [
        { label: "Research", y: [(new Date(2024, 9, 4, 9, 0)).getTime(), (new Date(2024, 9, 7, 17, 0)).getTime()] },
        { label: "Design", y: [(new Date(2024, 9, 7, 9, 0)).getTime(), (new Date(2024, 9, 10, 17, 0)).getTime()] },
        { label: "Development", y: [(new Date(2024, 9, 10, 9, 0)).getTime(), (new Date(2024, 9, 20, 17, 0)).getTime()] },
        { label: "Testing", y: [(new Date(2024, 9, 20, 9, 0)).getTime(), (new Date(2024, 9, 25, 17, 0)).getTime()] },
        { label: "Documentation", y: [(new Date(2024, 9, 25, 9, 0)).getTime(), (new Date(2024, 9, 27, 17, 0)).getTime()] },
        { label: "Release & Verify", y: [(new Date(2024, 9, 28, 9, 0)).getTime(), (new Date(2024, 9, 28, 17, 0)).getTime()] }
      ]
    }
  ]
});

chart.render();