Displaying ISO Week Number in labels using labelFormatter - CanvasJS JavaScript Charts

Displaying ISO Week Number in labels using labelFormatter - CanvasJS JavaScript Charts

by canvasjs

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>

JavaScript

var chart = new CanvasJS.Chart("chartContainer",{
  title: {
    text: "Displaying ISO Week Number in Label"               
  },
  axisX:{
  	labelMaxWidth: 70,
		labelWrap: true,
    labelFormatter: function(e){
      var dt = new Date(e.value);
      var isoWeek = 0;
      var tdt = new Date(dt.valueOf());
      var dayn = (dt.getDay() + 6) % 7;
      tdt.setDate(tdt.getDate() - dayn + 3);
      var firstThursday = tdt.valueOf();
      tdt.setMonth(0, 1);
      if (tdt.getDay() !== 4) 
      {
        tdt.setMonth(0, 1 + ((4 - tdt.getDay()) + 7) % 7);
      }
      isoWeek = 1 + Math.ceil((firstThursday - tdt) / 604800000);
      return CanvasJS.formatDate(e.value, "D/MM/YY") + ", Week: "+ isoWeek;
    }
  },
  axisY: {
    valueFormatString: "#,###"
  },

  data: [
    {        
      type: "area",
      color: "rgba(0,75,141,0.7)",
      dataPoints: [
        { x: new Date(2018, 00, 7), y: 1 },
        { x: new Date(2018, 00, 14), y: 6 },
        { x: new Date(2018, 00, 21), y: 4 },
        { x: new Date(2018, 00, 28), y: 3 },
        { x: new Date(2018, 01, 5), y: 7 },
        { x: new Date(2018, 01, 12), y: 4 },
        { x: new Date(2018, 01, 19), y: 6 }
      ]
    }

  ]
});

chart.render();